我有一个单页JavaScript应用程序,我使用Auth0服务进行注册/登录。如何检测当前请求是否为认证回调?
我已经将锁部件和我保存用户后的字符串localStorage
进行身份验证,像这样:
lock.on("authenticated", function(authResult)
{
localStorage.setItem('login', authResult.idToken);
}
的问题是,当Auth0重定向他们回到我的应用程序在登录后,authenticated
事件仅在页面加载后触发,但到那时,我已经完成检查以确定localStorage
字符串是否已设置(不是);因此,用户会越来越要求重新登录:
if(localStorage.getItem('login') == undefined)
{
lock.show(function(err, profile, token)
{
// ...
}
}
我想看看是否有什么特别的网页通过回调之后 - 但是引用并不总是存在。
如果我不会自动提示用户登录,而是显示登录按钮 - 由于某种原因,authenticated
事件不会触发。
我该如何解决这个问题?
嗨若昂。我试过这个示例代码,但它仍然以无限循环的方式请求登录。登录后,它会使用?code =参数重新加载页面,但它不会得到正确或认证的处理。 – skunkwerk
'?code ='的外观表明您正在使用OAuth2授权代码授权,这是为服务器端Web应用程序处理的。如果您想要一个SPA来处理Lock处理认证响应,您需要使用隐式授权,以便在URL的散列片段('#...')中传递响应。 –