4

I am trying to configure my Angular app to use the OAuth2 library (angular-oauth2-oidc).

In the file auth.service.ts my OAuthService is configured:

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());
  }

In my home component I added a button to trigger the implicit flow and get an access token.

After initialization of the implicit flow the app redirects to the correct login page of the provider where I log in and get redirected to my redirectUri of my OAuth configuration.

BUT

If I try to get a state, for example I call isLoggedIn method, I get always false. Also, there is a false return at hasValidAccessToken().

Can anybody show how to correctly configure angular 5 and oauth2? I need also a possibility to store my given access token to use them in my rest methods to get data.

Jeroen
  • 60,696
  • 40
  • 206
  • 339
Alexander Belokon
  • 1,452
  • 2
  • 17
  • 37

1 Answers1

0

Need to add JWKs token Validator in your configration. And set Jwks as per your Response type

this.oauthService.tokenValidationHandler = new JwksValidationHandler();