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
, Это должно быть вызвано для вас, когда вы запускаете регистрацию, поэтому мне любопытно, почему это не так. Проверить логи?