Как делиться файлами cookie из разных источников? В частности, как использовать Set-Cookie
заголовок в сочетании с заголовком Access-Control-Allow-Origin
?
Вот объяснение моей ситуации:
Я пытаюсь установить файл cookie для API, который работает localhost:4000
в веб-приложении, на котором размещено localhost:3000
.
Кажется, я получаю правильные заголовки ответов в браузере, но, к сожалению, они не действуют. Это заголовки ответа:
HTTP / 1.1 200 ОК Доступ-Контроль-Разрешить-Происхождение: http: // localhost: 3000 Варьируется: происхождение, кодирование-принятие Set-Cookie: token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Макс-возраст = 86400; Домен = localhost: 4000; Путь = /; Срок действия истекает = Вт, 19 сентября 2017 г., 21:11:36 GMT; HttpOnly Тип содержимого: приложение / json; charset = utf-8 Длина содержимого: 180 ETag: W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" Дата: пн, 18 сентября 2017 г., 21:11:36 GMT Подключение: keep-alive
Кроме того, я вижу файл cookie, Response Cookies
когда проверяю трафик на вкладке «Сеть» в инструментах разработчика Chrome. Тем не менее, я не вижу, чтобы файл cookie был установлен на вкладке «Приложение» ниже Storage/Cookies
. Я не вижу ошибок CORS, поэтому полагаю, что мне не хватает чего-то еще.
Какие-либо предложения?
Обновление I:
Я использую модуль запроса в приложении React-Redux для отправки запроса /signin
конечной точке на сервере. Для сервера использую экспресс.
Экспресс-сервер:
res.cookie ('токен', 'xxx-xxx-xxx', {maxAge: 86400000, httpOnly: true, domain: 'localhost: 3000'})
Запрос в браузере:
request.post ({uri: '/ signin', json: {userName: 'userOne', пароль: '123456'}}, (err, response, body) => { // делаем что-то })
Обновление II:
Я как сумасшедший настраиваю заголовки запроса и ответа, убеждаясь, что они присутствуют как в запросе, так и в ответе. Ниже скриншот. Обратите внимание на заголовки Access-Control-Allow-Credentials
, Access-Control-Allow-Headers
, Access-Control-Allow-Methods
и Access-Control-Allow-Origin
. Глядя на проблему, которую я обнаружил на github Axios , у меня сложилось впечатление, что все необходимые заголовки теперь установлены. Но все равно не повезло ...