我们必须为我们的用户提供退出我们应用程序的选项。这将要求他们重新登录以进一步使用。但是,似乎在实现https://YOUR_AUTH0_DOMAIN/v2/logout?returnTo=http%3A%2F%2Fwww.example.com时出于某种原因未删除auth0会话cookie。
即使重定向有效,用户在调用webAuth.authorize()之后仍会自动重新登录。同时会要求您重新输入凭据。 首次调用此功能时,要求用户输入用户名和密码。但是,直到令牌过期,才不再需要它们。 不幸的是,即使提供的示例(通过下载部分)也无法解决此问题。想知道这是否有可能,但似乎Auth0网站本身可以正确处理。
这是代码示例:
var logoutBtn = document.getElementById('vwLogoutBtn');
logoutBtn.addEventListener('click', logout);
function setSession(authResult) {
// Set the time that the access token will expire at
var expiresAt = JSON.stringify(
authResult.expiresIn * 1000 + new Date().getTime()
);
localStorage.setItem('access_token', authResult.accessToken);
localStorage.setItem('id_token', authResult.idToken);
localStorage.setItem('expires_at', expiresAt);
}
function logout() {
// Remove tokens and expiry time from localStorage
localStorage.removeItem('access_token');
localStorage.removeItem('id_token');
localStorage.removeItem('expires_at');
webAuth.logout({
returnTo: 'http://staging.myproject.com/prototype/home.html',
client_id: AUTH0_CLIENT_ID
});
displayButtons();
}
function displayButtons() {
if (isAuthenticated()) {
getProfile();
} else {
//You are not logged in
webAuth.authorize();
}
}
handleAuthentication();
});
我们还尝试使用:https://YOUR_AUTH0_DOMAIN/v2/logout?returnTo=http%3A%2F%2Fwww.example.com
但是,每次用户注销并点击登录页面时,该用户都会自动重新登录。
非常感谢您的帮助/指导。谢谢
答案 0 :(得分:0)
经过大量测试,我实际上可以回答我自己的问题大声笑
问题是注销(会话cookie删除)与重新登录相结合的发生太快了。延迟调用webAuth.authorize()表示用户已成功注销。 您当然不想延迟此功能。就我而言,我现在要转到“注销”页面,该页面还提供了重新登录的选项。