Можете ли вы отправить аутентификацию токена с помощью другого cookie-файла сеанса - PullRequest
0 голосов
/ 03 июня 2019

У меня есть приложение на Angular 6, которое запускает ряд других устаревших приложений. Устаревшие приложения используют сессионный cookie для аутентификации. Тем не менее, угловое приложение использует токен аутентификации. Когда я открываю устаревшие приложения, появляется страница входа в систему и добавляется сессионный cookie. однако, когда я возвращаюсь в приложение angular и отправляю http-запрос к моему api, сессионный cookie-файл отправляется вместе с ним, как и моя аутентификация токена. наличие идентификатора сеанса вызывает неавторизованный ответ об ошибке.

Это можно исправить, удалив cookie-файл sessionid, но пользователи не должны делать это постоянно.

Как управлять обоими методами аутентификации, не связывая их вместе и не вызывая ошибки друг друга.

1 Ответ

0 голосов
/ 04 июня 2019

Файлы cookie отправляются браузерами автоматически для определенного домена в зависимости от того, как настроен заголовок Set-Cookie при возврате с сервера в браузер.

Когда вы впервые отправляете запрос в «устаревшее приложение», он возвращает cookie, который хранится в вашем браузере для этого конкретного домена, т.е. example.com. Любые последующие запросы http, которые вы отправляете на example.com или example.com/api, приводят к тому, что браузер автоматически отправляет этот файл cookie.

Судя по вашему описанию, кажется, что и ваше "старое приложение для входа в систему", и "API" (для которого требуется аутентификация токена) размещены в одном домене или поддомене.

Вы можете изменить настройки DNS таким образом, чтобы ваше «старое приложение для входа в систему» ​​находилось на другом поддомене, чем ваш «API». например legacyapp.example.com и api.example.com. И убедитесь, что он возвращает cookie без Set-Cookie: domain=example.com, что приведет к тому, что браузеры отправят cookie на оба поддоменов, поскольку example.com является доменом более высокого уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...