Skip to main content

Version 13 to 14

In this version the APP_INITIALIZER was removed. (See PR). The library will not do anything until the application interact with it. There is no pre-loading of anything and it does not affect your application's bootstrapping process at all. You can however explicitly preload the secure token server well-known endpoints with a new method called preloadAuthWellKnownDocument(). As a side effect because the config has to be loaded first, a lot of APIs become reactive and return an Observable now.

All changes are described below.

eagerLoadAuthWellKnownEndpoints was removed#

The secure token server well known endpoints are always eager loaded expect loading it explicitly using thepreloadAuthWellKnownDocument() method. No option needed anymore.

getConfiguration now returns an Observable#

Old:

const singleConfig = this.oidcSecurityService.getConfiguration();

New:

this.oidcSecurityService.getConfiguration().subscribe((config)=> ... );

getUserData now returns an Observable#

Old:

const userData = this.oidcSecurityService.getUserData();

New:

this.oidcSecurityService.getUserData().subscribe((data)=> ... );

checkAuthMultiple does not take a configId parameter anymore.#

If you want to check a single config, use checkAuth with a configId param instead.

Old:

checkAuthMultiple(url?: string, configId?: string)

New:

checkAuthMultiple(url?: string)

isAuthenticated now returns an Observable#

Old:

const isAuthenticated = this.oidcSecurityService.isAuthenticated();

New:

this.oidcSecurityService.isAuthenticated().subscribe((isAuthenticated)=> ... );

getAccessToken now returns an Observable#

Old:

const accessToken = this.oidcSecurityService.getAccessToken();

New:

this.oidcSecurityService.getAccessToken().subscribe(/*...*/);

getIdToken now returns an Observable#

Old:

const idToken = this.oidcSecurityService.getIdToken();

New:

this.oidcSecurityService.getIdToken().subscribe(/*...*/);

getRefreshToken now returns an Observable#

Old:

const refreshToken = this.oidcSecurityService.getRefreshToken();

New:

this.oidcSecurityService.getRefreshToken().subscribe(/*...*/);

getAuthenticationResult now returns an Observable#

Old:

const authnResult = this.oidcSecurityService.getAuthenticationResult();

New:

this.oidcSecurityService.getAuthenticationResult().subscribe(/*...*/);

getPayloadFromIdToken now returns an Observable#

Old:

const payload = this.oidcSecurityService.getPayloadFromIdToken();

New:

this.oidcSecurityService.getPayloadFromIdToken().subscribe(/*...*/);

setState now returns an Observable#

Old:

this.oidcSecurityService.setState('some-state');

New:

this.oidcSecurityService.setState('some-state').subscribe(/*...*/);

getState now returns an Observable#

Old:

const state = this.oidcSecurityService.getState();

New:

this.oidcSecurityService.getState().subscribe(/*...*/);

getEndSessionUrl now returns an Observable#

Old:

const endSessionUrl = this.oidcSecurityService.getEndSessionUrl();

New:

this.oidcSecurityService.getEndSessionUrl().subscribe(/* ... */);

Providing a Custom Storage Service#

The storage property was removed of the config to provide a better usage to use an own custom storage. With the new syntax, you can pass your own service in a better way and even pass custom dependencies using the Dependency providers of Angular.

import { AbstractSecurityStorage } from 'angular-auth-oidc-client';
@Injectable()
export class CustomStorage implements AbstractSecurityStorage {
// ...
}

Old:

@NgModule({
imports: [
// ...
AuthModule.forRoot({ config: { storage: new CustomStorage() } })
],
// ...
})

New:

@NgModule({
imports: [
AuthModule.forRoot({
config: {
// ...
},
}),
],
providers: [{ provide: AbstractSecurityStorage, useClass: MyStorageService }],
exports: [AuthModule],
})
export class AuthConfigModule {}