Oidc-клиент с IdentityServer3 - Angular2, как правильно выйти и войти

Вот некоторая предыстория, я использую неявный поток и мой токен - JWT. Чтобы выйти, я использую вызов метода signoutRedirectCallback.

Я хочу иметь возможность правильно выйти из системы. Так что я могу войти как другой пользователь. При этом у меня все еще остается токен от последнего пользователя? Есть ли способ полностью выйти из системы, чтобы у него не было токена последнего пользователя? Маркер все еще сохраняется по какой-то причине. Кажется, что единственный способ по-настоящему выйти из системы - это когда страница браузера закрыта, а cookie на identityserver3 удален / удален?

Это может также ответить на мою другую проблему. Если пользователь нажимает гиперссылку на главной странице сетки и открывает новую вкладку (например, страницу сведений), если пользователь выходит из системы на новой вкладке (страница сведений), страница главной сетки (старая вкладка) по-прежнему регистрируется. в? Опять же, это та же проблема, когда я не полностью вышел из системы.

Может ли кто-нибудь дать мне несколько советов о том, как правильно выйти из системы, чтобы удалить cookie на сервере identity3? Так что это чистый лист. Маркер все еще сохраняется. Спасибо.

//Here is the code. In my main component I have a menuclick event and this works: 
public MenuClick(event, item)
{
    if (item === "signOut") 
    {
        this.signOut();
    }
}

public signOut() 
{
    this._LoginService.logOut();
}

//Here is the LoginService that calls the oidc-client method:
public logOutCall(): Observable<boolean> 
{
    return Observable.fromPromise(new Promise<boolean> (
        resolve => 
        {
            this._oidcService.logOut();
            resolve(true);
        }
    ));
}

This._oidcService.logOut() вызывает фактический метод oidc-client signoutRedirectCallback(). Это работает и перенаправляет. Но токен все еще сохраняется, пока я не закрою страницу.

ОБНОВЛЕНИЕ: моя команда тестирования сказала мне, что эта проблема определенно связана с Chrome.

1 ответ

Чтобы очистить состояние, управляемое UserManager, вызовите removeUser, Это должно быть вызвано для вас, когда вы запускаете регистрацию, поэтому мне любопытно, почему это не так. Проверить логи?

Другие вопросы по тегам