Angular 5 + OAuth2: токен не устанавливается с помощью libary [angular-oauth2-oidc]

Я пытаюсь настроить приложение Angular для использования библиотеки OAuth2 ( angular-oauth2-oidc).

В файле auth.service.ts мой OAuthService настроен:

this.oauthService.loginUrl = 'https://serverdomain.com/authorization/';
    this.oauthService.redirectUri = 'http://localhost:4200/auth';
    this.oauthService.clientId = '1111-2222-3333-4444-5555-6666-7777';
    this.oauthService.setStorage(localStorage);
    this.oauthService.requireHttps = false;
    this.oauthService.responseType = 'token';
    this.oauthService.tokenEndpoint = 'https://serverdomain.com/token/';
    this.oauthService.oidc = false;
    this.oauthService.issuer = 'https://serverdomain.com/authorization/';
    this.oauthService.tokenValidationHandler = new JwksValidationHandler();
    this.oauthService.requestAccessToken = true;
    this.oauthService.showDebugInformation = true;
    this.oauthService.scope = 'openid profile email';
    this.oauthService.tryLogin({
      onTokenReceived: context => {
        console.log(context);
      }
    });

obtainAccessToken() {
    this.oauthService.initImplicitFlow();
  }

isLoggedIn() {
    if (this.oauthService.getAccessToken() === null) {
      return false;
    }
    return true;
  }

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

logAuthData() {
    console.log(this.oauthService.hasValidAccessToken());
  }

В моем домашнем компоненте я добавил кнопку для запуска неявного потока и получения токена доступа.

После инициализации неявного потока приложение перенаправляет на правильную страницу входа провайдера, на которой я вхожу, и перенаправляется на мой redirectUri моей конфигурации OAuth.

НО

Если я пытаюсь получить состояние, например, вызываю метод isLoggedIn, я всегда получаю false. Кроме того, есть ложное возвращение в hasValidAccessToken().

Кто-нибудь может показать, как правильно настроить angular 5 и oauth2? Мне также нужна возможность сохранить свой данный токен доступа, чтобы использовать их в моих методах отдыха для получения данных.

0 ответов

Необходимо добавить валидатор токенов JWKs в вашу конфигурацию. И установите Jwks в соответствии с вашим типом ответа

this.oauthService.tokenValidationHandler = new JwksValidationHandler();
Другие вопросы по тегам