CORS получает аутентификацию, используя куки сеанса браузера - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть сервер, на котором хранятся файлы cookie сеанса, и вы можете войти на него, используя страницу (foo.com/login.html), которая запускается в браузере. Затем браузер сохраняет сессионный повар ie для этого домена.

Теперь я хочу, чтобы при инициализации еще одна страница (bar.com) отправила запрос GET с помощью JavaScript на первую страницу (foo.com/ authenticate), который должен проверить, существует ли в браузере сеансовый повар ie, и проверить его, если он правильный, он должен ответить именем пользователя сеанса (однако это получено из cook ie). Конечно, я не могу проверить в JavaScript на bar.com, существует ли сессия cook ie для foo.com.

При попытке решить эту проблему я столкнулся с несколькими проблемами, одна из которых, конечно, CORS , Мне удалось избежать этой проблемы, разместив обратный прокси-сервер перед foo.com, который добавляет в ответ все необходимые заголовки CORS. помимо добавления заголовков, прокси только туннелирует запросы через (например, rev-proxy.com/authenticate -> foo.com/authenticate)

Теперь, когда я вызываю обработчик через прокси rev из другого окна браузера напрямую (например, rev-proxy.com/authenticate), я получаю правильный ответ. Обработчик из бэкэнда foo.com находит сессионный повар ie, считывает имя пользователя и передает его обратно. НО, когда я пытаюсь сделать тот же звонок с JavaScript внутри bar.com (fetch ("rev-proxy.com/authenticate")), я получаю ноль, то есть он не нашел повара ie (обратите внимание, что Сам запрос имеет статус 200, что означает, что он достиг бэкэнда foo.com).

У меня такое ощущение, что мне не хватает критического момента в том, как куки используются браузерами, но я не могу найти какую-либо полезную информацию о моем конкретная c проблема, так как я считаю, что она довольно необычная.

1 Ответ

2 голосов
/ 01 апреля 2020

См. документация MDN :

fetch не будет отправлять куки, если вы не установили опцию инициализации учетных данных. (С 25 августа 2017 г. spe c изменил политику учетных данных по умолчанию на тот же источник. Firefox изменился с 61.0b13.)

...