#node.js #reactjs #macos #cookies
#node.js #reactjs #macos #файлы cookie
Вопрос:
Я пытаюсь отправить файл cookie в заголовке запроса, используя выборку в react js. Я использую приведенные ниже заголовки при вызове выборки во внешнем интерфейсе-
Credentials: 'include'
В серверной части я разрешаю мой источник с помощью cors.
Например, URL моего веб-сайта ABC.com и у меня есть файл cookie из domain.xyz.Com . И мне нужно снова отправить этот файл cookie в xyz.Веб-сайт Com.
Когда я использую свой веб-сайт в Windows, и я могу отправлять файлы cookie на xyz.com Но в MacBook, который я пробовал использовать Chrome и safari, файлы cookie не отправляются на xyz.com .
Может кто-нибудь сообщить мне, как мы можем разрешить отправку файлов cookie с MacBook.
Ответ №1:
Когда атрибут cookie SameSite не указан, Chrome устанавливает для него значение «Lax» и не отправляет его по умолчанию. Вам необходимо отключить «cookie-файлы того же сайта по умолчанию» в chrome://flags, чтобы установить для неопределенного SameSite значение «Нет» и иметь возможность отправлять ваши cookie-файлы.
Соответствующие советы: https://www.chromium.org/updates/same-site/test-debug
Комментарии:
1. Этот файл cookie генерируется отдельной командой, мы не имеем никакого контроля над ним. И наш код работает нормально, когда я захожу на свой веб-сайт из Windows. Проблема возникает только при доступе к нашему веб-сайту с Mac
2. ОК. Вы проверили, каковы атрибуты SameSite и Secure? Кроме того, точный синтаксис в javascript — это учетные данные: «включить»
3. Тот же сайт и secure пусты. Это файл cookie httponly. И да, я удостоверяюсь, что использую «включить»
4. Вы могли бы попробовать отключить политики SameSite и Secure по умолчанию в Chrome, как описано здесь: chromium.org/updates/same-site/test-debug
5. Спасибо, отключение флагов samesite устранило проблему. Вы можете отредактировать свой первоначальный ответ, я поставлю галочку
Ответ №2:
Для устранения этой проблемы, связанной с Mac, нам нужно выполнить следующие шаги
Chrome — Отключите те же флаги сайта в настройках Chrome.
Safari — Перейдите в настройки -> Конфиденциальность -> снимите флажок Запретить межсайтовое отслеживание.