IdentityServer4 и Angular: выход из системы с неявным потоком - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть приложение Angular, которое интегрируется с IdentityServer4 с неявным потоком и библиотекой angular-oauth2-oidc.

Кажется, все работает нормально, я могу войти;и токен доступа доступен.

Если я нажимаю кнопку выхода из системы, я обрабатываю ее следующим образом:

logout() {    
   this.oauthService.logOut();    
}

... и меня перенаправляют на Identity Server, где он спрашивает меня,Я действительно хочу выйти из системы.

У меня вопрос, могу ли я обойти это приглашение?Я имею в виду, я хочу полностью выйти из системы, если кнопка была нажата и перенаправлена ​​обратно на сайт Angular, без необходимости подтверждать это?

Как этого достичь?

РЕДАКТИРОВАТЬ: какупоминается в других ответах, он должен работать, если вы передаете id_token_hint.Итак, я сделал:

logout() {
    this.oauthService.customQueryParams = {
        'id_token_hint': this.oauthService.getIdToken()
    };    
    this.oauthService.logOut();    
}

Но это не имеет значения.

1 Ответ

0 голосов
/ 21 февраля 2019

Было две проблемы, которые мне нужно было исправить, чтобы эта работа работала.

В IdentityServer, классе AccountOptions, мне пришлось установить для этого свойства значение true вместо false:

public static bool AutomaticRedirectAfterSignOut = true;

Далее, в конфигурации клиента IdentityServer, я должен был определить uri перенаправления после выхода из системы:

PostLogoutRedirectUris = new List<string> {"http://...."}

Это сделало это.Мне не пришлось ничего менять в клиенте Angular.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...