我正在使用Auth0通过Google社交帐户实现SSO,其代码如下:
this.auth0.getSSOData(function (err, data) {
if (!isAuthCallback && !err && data.sso) { //Problem line
// ...
}
}
如果我使用Auth0内置用户名和密码身份验证,则data.sso
会返回true
,这意味着SSO会话处于活动状态。
但是,如果我使用类似Google的内容进行身份验证,则data.sso
会返回false
。我该如何解决这个问题?
答案 0 :(得分:0)
如果您正确启用了标志使用Auth0而不是IdP进行单点登录并且您仍然在观察此行为,最可能的原因是您正在使用Auth0开发人员密钥Google社交关系。
不使用自己的密钥的一个问题是SSO无法正常运行;有关其他约束的更多信息,请参阅Using the Auth0 Developer Keys with Social Connections。
使用Auth0开发人员密钥时,单点登录将无法正常运行。原因是具有所有相关身份提供商的Auth0开发人员应用程序配置为回调URL
https://login.auth0.com/login/callback
而不是您自己的租户的回调URL,即https://YOUR_AUTH0_DOMAIN/login/callback
。这导致SSO Cookie未在您自己的租户域中设置,因此下次用户进行身份验证时,将检测不到SSO Cookie ,即使您将客户端配置为使用Auth0而不是身份提供者进行单点登录。
(重点是我的)