как обмениваться данными сеанса между двумя приложениями angular 2

У меня есть два угловых приложения App1 и App2. Я хочу поделиться данными сеанса App1 с App2. Ссылка, как и Google, мы можем получить доступ ко всем приложениям Google с помощью одного входа.


person Piyush Kashyap    schedule 08.06.2018    source источник
comment
печенье ? локальное хранилище? Трудно сказать без конкретного случая использования.   -  person lealceldeiro    schedule 08.06.2018
comment
Я вошел в App1, и на панели инструментов App1 у меня есть список приложений. В тот момент, когда я нажимаю на App2, я не должен снова входить в систему.   -  person Piyush Kashyap    schedule 08.06.2018


Ответы (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.

person netalex    schedule 04.12.2018