【问题标题】:how to share session data between two angular 2 application如何在两个 Angular 2 应用程序之间共享会话数据
【发布时间】:2018-11-18 13:25:58
【问题描述】:

我有两个 Angular 应用 App1 和 App2。我想将 App1 会话数据共享给 App2。参考,就像谷歌一样,我们可以通过一次登录访问所有谷歌应用程序。

【问题讨论】:

  • 饼干?本地存储?没有具体的用例很难说。
  • 我登录了 App1,在我的 App1 的仪表板中我有应用程序列表。当我点击 App2 的那一刻,我不应该再次登录。

标签: angular session cookies session-management


【解决方案1】:

这就是一般意义上的逻辑:

当用户登录时,BE 会为该登录分配一个临时令牌。

如果仪表板和 app1 BE 不同,则 db-be 将活动令牌传递给 app1-be

或者更好将有一个集中的 BE 来生成会话令牌(参见 https://www.keycloak.org/ 和身份管理软件),每个 BE 都参与其中搜索活动令牌。

当用户单击 app1 仪表板按钮时,BE 会将他重定向到类似 http://[app1]?token=[hash1234] 的位置,其中 token 是用户的登录令牌值。

用户的app1前端启动,读取token并将其保存在localstorage中。

当 app1 通过 rest 调用 BE 时,通常使用角度拦截器,每个调用都使用像 {authentication: bearer [token value]} 这样的标头值进行签名,其中承载令牌是承载已登录的令牌。

BE 验证令牌是否已经有效(很可能通过调用身份服务器),如果有效,则授予对被调用资源的访问权限。

请参阅 JWT 身份验证和 SSO 登录。

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 2016-07-16
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多