У меня есть два угловых приложения App1 и App2. Я хочу поделиться данными сеанса App1 с App2. Ссылка, как и Google, мы можем получить доступ ко всем приложениям Google с помощью одного входа.
как обмениваться данными сеанса между двумя приложениями angular 2
Ответы (1)
это логика в общем:
Когда пользователь входит в систему, BE назначает временный токен этому логину.
если дашборд и app1 BE отличаются, db-be передает активные токены в app1-be
ИЛИ ЛУЧШЕ будет централизованный BE только для создания токена сеанса (см. https://www.keycloak.org/ и программное обеспечение для управления идентификацией), где каждый BE занимается поиском активных токенов.
Когда пользователь нажимает кнопку панели инструментов app1, BE перенаправляет его на что-то вроде http://[app1]?token=[hash1234], где токен — это значение токена входа пользователя.
Пользовательский интерфейс app1 запускается, считывает токен и сохраняет его в локальном хранилище.
Когда app1 вызывает BE через паузу, обычно используя перехватчик angular, каждый вызов подписывается со значением заголовка, например {authentication: bearer [token value]}
, где токен носителя — это токен, носитель которого уже зарегистрирован.
BE проверяет, что токен уже действителен (скорее всего, с помощью вызова сервера идентификации) и, если это так, предоставляет доступ к вызываемым ресурсам.
См. Аутентификация JWT и вход в систему SSO.