Вопрос №55357 от пользователя Илья в проекте «Чат (Slack)»
Добрый день! У меня возник такой вопрос по авторизации.
Есть два токена access и refresh. Правильно ли их хранить в localStorage. В сессиях и cookie я как понял особого смысла нет потому что они сохраняются на одном домене.
Ну что если есть два отдельный домена с единой авторизацией и пользователь авторизовавшись на одном из них решил перейти на другой по ссылке или просто руками ввёл новый адрес.
Получается при таком переходе токен не будет браться из localStorage и передаваться на новый домен. По идее нужно будет заново авторизоваться.
А если в одном из этих случаях получилось так что при переходе на новый домен время жизни токена кончилось. Как другой домен сможет обновить токен если он его изначально не подписывал.
Исходя из это у меня два вопроса.
Где будет правильно хранить токены для авторизации? Получается в идеале браузер сам должен их отправлять, или каждый из доменов на стороне клиента должен будет попытаться получить токен?
И второй как сервис B сможет обновить access токен подписанный в сервисе A если сам сервис у себя ничего сохраняет?
Заранее спасибо!
Как правило, используется редирект на сервис авторизации, который выдаёт токены для каждого из доменов. Токен может сохраняться в localStorage и передаваться из iframe с сервисом авторизации через postMessage. Сервис авторизации может запоминать пользователя путём установки токена или куки с тем, чтобы при редиректе с домена, на котором пользователь ещё не залогинен (но залогинен на другом) не запрашивать логин/пароль.
Спасибо за развернутый ответ, стало понятно как работает!
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







