angular - 如何在两个 Angular 2 应用程序之间共享会话数据
问题描述
我有两个角度应用 App1 和 App2。我想将 App1 会话数据共享给 App2。参考,就像谷歌一样,我们可以通过一次登录访问所有谷歌应用程序。
解决方案
这就是一般的逻辑:
当用户登录时,BE 会为该登录分配一个临时令牌。
如果仪表板和 app1 BE 不同,则 db-be 将活动令牌传递给 app1-be
或者更好的是,会有一个集中的 BE 来生成会话令牌(参见https://www.keycloak.org/和身份管理软件),每个 BE 都参与搜索活动令牌。
当用户单击 app1 仪表板按钮时,BE 会将他重定向到类似http://[app1]?token=[hash1234]的内容,其中 token 是用户的登录令牌值。
用户的 app1 前端启动,读取令牌并将其保存在本地存储中。
当 app1 通过 rest 调用 BE 时,通常使用角度拦截器,每个调用都使用标头值进行签名,例如{authentication: bearer [token value]}
,其中承载令牌是承载已登录的令牌。
BE 验证令牌是否已经有效(很可能通过对身份服务器的调用),如果有效,则授予对被调用资源的访问权限。
请参阅 JWT 身份验证和 SSO 登录。
推荐阅读
- node.js - 如何在节点 js 中使用 json-rpc-client?
- assembly - 递归斐波那契 (NASM)
- node.js - 使用 express-flash 或 connect-flash 会导致空白消息对象
- html - 在 URL 中嵌入 HTML
- excel - 图表 x 轴显示数据点的数量,而不是动态数据集的实际 x 轴值
- c# - 使用 ASP.NET 核心在外部提供程序 API 登录后检索代码
- python - 如何使函数接受并输出 Dataframe 系列?
- c - “未定义的引用”或“函数的隐式声明”pthread_cond_*
- reactjs - ReactJS 根据用户输入的数量添加组件
- websphere - IBM BPM 19.0.0.3 - 迁移后事件管理器不启动