Angular Lib for OpenID Connect & OAuth2
OpenID Code Flow with PKCE, Code Flow with refresh tokens, OpenID Connect Implicit Flow
OpenID Certification
This library is certified by OpenID Foundation. (RP Implicit and Config RP)
Features
Installation
Ng Add
You can use the schematics and ng add
the library.
ng add angular-auth-oidc-client
And answer the questions. A module will be created which encapsulates your configuration.
Npm / Yarn
Navigate to the level of your package.json
and type
npm install angular-auth-oidc-client
or with yarn
yarn add angular-auth-oidc-client
Documentation
Quickstart
For the example of the Code Flow. For further examples please check the Samples Section
NOTE If you have done the installation with the schematics, these modules and files should be available already!!!
If the schematics did not do this already: Import the module and services in your module.
import { HttpClientModule } from '@angular/common/http';
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { AuthModule, LogLevel, OidcConfigService } from 'angular-auth-oidc-client';
export function configureAuth(oidcConfigService: OidcConfigService) {
return () =>
oidcConfigService.withConfig({
stsServer: '<your sts address here>',
redirectUrl: window.location.origin,
postLogoutRedirectUri: window.location.origin,
clientId: 'angularClient',
scope: 'openid profile email',
responseType: 'code',
silentRenew: true,
silentRenewUrl: `${window.location.origin}/silent-renew.html`,
logLevel: LogLevel.Debug,
});
}
@NgModule({
imports: [
AuthModule.forRoot(),
],
providers: [
OidcConfigService,
{
provide: APP_INITIALIZER,
useFactory: configureAuth,
deps: [OidcConfigService],
multi: true,
},
],
})
export class AppModule {}
And call the method checkAuth()
from your app.component.ts
import { Component, OnDestroy, OnInit } from '@angular/core';
import { OidcClientNotification, OidcSecurityService, PublicConfiguration } from 'angular-auth-oidc-client';
import { Observable } from 'rxjs';
@Component({
})
export class AppComponent implements OnInit {
constructor(public oidcSecurityService: OidcSecurityService) {}
ngOnInit() {
this.oidcSecurityService.checkAuth().subscribe((auth) => console.log('is authenticated', auth));
}
login() {
this.oidcSecurityService.authorize();
}
logout() {
this.oidcSecurityService.logoff();
}
}
Using the access token
You can get the access token by calling the method getToken()
on the OidcSecurityService
const token = this.oidcSecurityService.getToken();
And then you can use it in the HttpHeaders
import { HttpHeaders } from '@angular/common/http';
const token = this.oidcSecurityServices.getToken();
const httpOptions = {
headers: new HttpHeaders({
Authorization: 'Bearer ' + token,
}),
};
License
MIT
Version 10
if you need information about version 10 please search here
https://github.com/damienbod/angular-auth-oidc-client/tree/version-10