#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.cookie2. Страница находится в другом домене, есть ли какой-либо способ обойти это ограничение?
3. Если это не ваш веб-сайт, и у вас нет контроля над ним, тогда нет, это было бы серьезным недостатком безопасности, если бы вы могли устанавливать cookie для других веб-сайтов.
4. Оба веб-сайта мои
5. Вы по-прежнему не можете обмениваться файлами cookie в разных доменах, но есть и другие способы передачи данных, например, запрос POST, а затем установка cookie в другом домене и т. Д.