Экспресс-cookie с перенаправлением не устанавливает cookie на клиенте

#javascript #node.js #express #reactjs

#javascript #node.js #экспресс #reactjs

Вопрос:

У меня есть некоторый код, который устанавливает cookie для ответа, а затем перенаправляет ответ на другой адрес. По какой-то причине файл cookie не отображается на клиенте, когда я это делаю document.cookie . Странно то, что я вижу в консоли разработчика Chrome, что в ответе на запрос, который запускает перенаправление, к нему прикреплен файл cookie. Я использую React на клиенте и выражаю Node.js на бэкэнде.

Вот экспресс-код, я пробовал без httpOnly и secure . Я также попытался просто установить httpOnly значение false. Я пробовал HttpOnly с secure true и false.

 res.cookie('session_token', results.session, { httpOnly: false, secure: true });
res.redirect(LOGIN_SUCCESS_URL);
  

Комментарии:

1. Если это httpOnly так, к нему невозможно получить доступ с помощью клиентского javascript, поэтому его необходимо отключить. Если это secure так, он работает только с SSL (https). Файлы cookie обычно доступны только в том же домене, поэтому вы, конечно, перенаправляете на страницу в том же домене. Также обратите внимание, что по умолчанию cookie сохраняется только для сеанса. Вы прочитали документацию -> expressjs.com/en/api.html#res.cookie

2. Страница находится в другом домене, есть ли какой-либо способ обойти это ограничение?

3. Если это не ваш веб-сайт, и у вас нет контроля над ним, тогда нет, это было бы серьезным недостатком безопасности, если бы вы могли устанавливать cookie для других веб-сайтов.

4. Оба веб-сайта мои

5. Вы по-прежнему не можете обмениваться файлами cookie в разных доменах, но есть и другие способы передачи данных, например, запрос POST, а затем установка cookie в другом домене и т. Д.