Не могу прочитать файл cookie httpOnly: false - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть экспресс-сервер, который записал cookie, но я не могу получить к нему доступ со стороны клиента.Я вижу это в инструментах разработчика Chrome, он НЕ помечен как httpOnly или Secure, но когда я пытаюсь получить к нему доступ через свое приложение React или даже просто набрав document.cookie в консоли браузера, я ничего не получаю.

В данный момент экспресс-сервер работает на Heroku, а мой клиент - localhost.

Я в тупике.

Вот мой код на стороне сервера, который устанавливает cookie:

return res
      .status(200)
      .cookie('id_token', token, {
        httpOnly: false,
        path: '/',
        secure: false,
        maxAge: 400000
      })
      .json({
        token: token
      });

1 Ответ

0 голосов
/ 24 ноября 2018

Экспресс-сервер работает в heroku, а Клиентский сервер работает в localhost.

Набор файлов cookie, установленный на Экспресс-сервере, распространяется на текущий хост, когда Domain для куки-файла отсутствует.не установлено. [1]

Допустим, ваше приложение обслуживается по express.herokuapp.com, сценарии могут читать его только тогда, когда работают на одном хосте. т.е. express.herokuapp.com

Однако с областями cookie cookie, установленный в домене, может быть прочитан сценариями, запущенными в поддомене .

В разработкеВы можете установить атрибут Domain для файла cookie, равный .herokuapp.com

Для производства я настоятельно рекомендую явно указать область действия cookie для клиентского домена.Хотя вы можете применять тот же процесс, что и разработка, если клиент и сервер работают в разных поддоменах.Это следует делать только в том случае, если другие клиентские приложения, работающие в других поддоменах, совместно используют файлы cookie.

Однако, если и клиент, и сервер будут работать в одном домене, я предлагаю сохранить область использования файлов cookie по умолчанию.

Если клиент и сервер работают в разных доменах, я настоятельно рекомендую явно указать cookie в домене клиента.

Затем добавьте следующую запись в псевдоним /etc/hosts к .localhost на поддомен herokuapp.com

127.0.0.1       local.herokuapp.com

Посетите псевдоним адреса, и скрипт на стороне клиента прочитает cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...