单一登录-跨域身份验证(@ auth0 / angular2-jwt)

时间:2019-05-30 16:47:35

标签: angular jwt auth0

我有几个角度应用程序(在不同的子域中)和一个主要角度应用程序(在主域中)。我正在使用@ auth0 / angular2-jwt库来管理身份验证。它运行良好,但不适用于“单点登录”。我必须登录每个子域,并且只需要在主域或任何子域中完成一次即可。

我已经尝试对白名单域使用正则表达式,但是它不起作用:

JwtModule.forRoot({
  config: {
    tokenGetter: tokenGetter,
    whitelistedDomains: [new RegExp(`(?:([^.]+)\.)*example\.com`)]
    ]
  }
})

那么,如果用户登录到主域或任何子域,该如何对所有子域进行身份验证?

  1. 用户已成功登录example.com或x.example.com
  2. 用户必须自动通过y.example.com,z.example.com等进行身份验证。

1 个答案:

答案 0 :(得分:0)

我很乐意为您解答!

  

如果用户登录到主域或任何子域,如何对所有子域进行身份验证?

与Regex相比,Single Sign On似乎非常适合您的用例,因为它使您能够在所有子域中对用户进行身份验证。默认情况下,对去年内创建的所有租户都启用SSO。使用SSO的最简单方法是利用通用登录。

如果您可以使用通用登录,则只需将身份验证请求设置为始终执行prompt=none,这应该检查隐藏的iframe中的cookie。但是,如果需要交互,您将在租户日志中收到“需要登录”警告,最终用户将被要求提供凭据。我已经参考了一些核心文档,这些文档可以为您的旅途提供帮助。

https://auth0.com/docs/sso/current/sso-auth0

https://auth0.com/docs/quickstart/spa/angular2/01-login