У меня есть сервер, на котором хранятся файлы 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 проблема, так как я считаю, что она довольно необычная.