我使用Extjs,并使用this tutorial设置应用程序和auth0。下面是登录代码:
userLogin: function() {
//Create auth0 client
createAuth0Client({
domain: ".....auth0.com",
client_id: ".....",
useRefreshTokens: true
}).then(function(auth0) {
try {
//Check if the user is authenticated, if not authenticate him, if yes insert his token in every ajax request
auth0.isAuthenticated().then(function(authenticated) {
if(!authenticated)
{
auth0.loginWithRedirect({ redirect_uri: window.location.origin }).then();
}
else{
auth0.getTokenSilently().then(function(token) {
Ext.Ajax.setDefaultHeaders({ 'Authorization' : 'Bearer ' + token });
});
}
})
} catch (err) {
console.log("Log in failed", err);
}
});
}
在第一次尝试时,isAuthenticated为false(正常行为),因此用户被重定向到auth0登录提示,用户输入其凭据并登录,auth0重定向到应用程序,现在isAutheenticated仍然为false,用户被重定向至auth0但没有登录提示,因为他已经登录,重定向回应用程序,然后开始无限循环。。。
auth0中的应用程序设置为SPA(单页应用程序)。尝试更改缓存位置,但未更改任何内容。
有什么想法吗?
1条答案
按热度按时间wkftcu5l1#
我想出来了。您需要使用
auth0.handleRedirectCallback()
函数:或者,您可以使用1d1d1e: