Auth0 - удаление куки сессии при выходе - PullRequest
0 голосов
/ 11 октября 2018

Мы должны дать нашим пользователям возможность выйти из нашего приложения.Это потребует от них входа в систему для дальнейшего использования.Тем не менее, кажется, что cookie сеанса auth0 по какой-то причине не был удален при реализации https://YOUR_AUTH0_DOMAIN/v2/logout?returnTo=http%3A%2F%2Fwww.example.com.

Даже если перенаправление работает, пользователь автоматически снова входит в систему после вызова 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

Однако каждый раз, когда пользователь выходит из системы и попадает на страницу входа, пользователь автоматически снова входит в систему.

Любая помощь / руководство приветствуется.Спасибо,

1 Ответ

0 голосов
/ 16 октября 2018

После многих тестов я действительно могу ответить на свой собственный вопрос. LOL

Проблема заключалась в том, что выход из системы (удаление файла cookie сеанса) в сочетании с повторным входом в систему происходил слишком быстро.Задержка вызова webAuth.authorize () показала, что пользователь успешно вышел из системы.Вы, конечно, не хотите задерживать эту функцию.В моем случае я теперь переадресовываю на страницу «Выйти», на которой также есть возможность снова войти в систему.

...