【发布时间】:2017-05-27 10:26:03
【问题描述】:
我在子域上托管了单独的身份验证应用程序和多个 spa 应用程序,我想将生成的 JWT 令牌(当用户从身份验证应用程序登录时生成)从身份验证应用程序共享到子域下托管的其他应用程序。我怎样才能做到这一点? 例如:xyz.com 为主域,x1.xyz.com、x2.xyz.com 为子域)
【问题讨论】:
我在子域上托管了单独的身份验证应用程序和多个 spa 应用程序,我想将生成的 JWT 令牌(当用户从身份验证应用程序登录时生成)从身份验证应用程序共享到子域下托管的其他应用程序。我怎样才能做到这一点? 例如:xyz.com 为主域,x1.xyz.com、x2.xyz.com 为子域)
【问题讨论】:
基本上您需要一个 SingleSignOn 系统。在选择(或不选择)协议或框架之前,请考虑您需要什么样的流程:
选项 1 重定向:(例如 openid 或 saml)在主域登录后,将用户重定向到发送 JWT 的子域。从子域跳转到其他域时附加令牌。启用基于主域中会话的经典 SSO,以在无需令牌直接访问子域时重定向用户。
选项 2 跨域共享令牌:(例如 google webs)在主域中进行身份验证并将 JWT 存储在从 SPA 连接的主域的 cookie/localStorage 中使用 iframe 的子域在此处查看完整答案:https://stackoverflow.com/a/40555970/6371459
【讨论】: