Auth0 - 注销时删除会话 cookie

Auth0 - session cookie delete on logout

我们必须让用户可以选择退出我们的应用程序。这将要求他们重新登录以供进一步使用。但是,在实施 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

但是,每次用户注销并点击登录页面时,用户都会自动重新登录。

任何 help/guidance 非常感谢。谢谢,

经过大量测试,我实际上能够回答我自己的问题 LOL

问题是注销(删除会话 cookie)和重新登录的速度太快了。延迟调用 webAuth.authorize() 表明用户已成功注销。 您当然不想延迟此功能。就我而言,我现在转发到 "Logged out" 页面,该页面还提供重新登录的选项。