Не удается отправить файлы cookie в заголовке запроса в Mac osx

#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 — Перейдите в настройки -> Конфиденциальность -> снимите флажок Запретить межсайтовое отслеживание.