import { HttpClientModule } from '@angular/common/http'; import { APP_INITIALIZER, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AuthModule, LogLevel, OidcConfigService } from 'angular-auth-oidc-client'; import { AppComponent } from './app.component'; import { routing } from './app.routes'; import { AutoLoginComponent } from './auto-login/auto-login.component'; import { ForbiddenComponent } from './forbidden/forbidden.component'; import { HomeComponent } from './home/home.component'; import { NavigationComponent } from './navigation/navigation.component'; import { UnauthorizedComponent } from './unauthorized/unauthorized.component'; export function configureAuth(oidcConfigService: OidcConfigService) { return () => oidcConfigService.withConfig({ stsServer: 'https://offeringsolutions-sts.azurewebsites.net', redirectUrl: window.location.origin, clientId: 'angularJwtClient', scope: 'openid profile email', responseType: 'code', triggerAuthorizationResultEvent: true, postLogoutRedirectUri: `${window.location.origin}/unauthorized`, startCheckSession: false, silentRenew: true, silentRenewUrl: `${window.location.origin}/silent-renew.html`, postLoginRoute: '/home', forbiddenRoute: '/forbidden', unauthorizedRoute: '/unauthorized', logLevel: LogLevel.Debug, historyCleanupOff: true, // iss_validation_off: false // disable_iat_offset_validation: true }); } @NgModule({ imports: [BrowserModule, routing, HttpClientModule, AuthModule.forRoot()], declarations: [AppComponent, ForbiddenComponent, HomeComponent, AutoLoginComponent, NavigationComponent, UnauthorizedComponent], providers: [ OidcConfigService, { provide: APP_INITIALIZER, useFactory: configureAuth, deps: [OidcConfigService], multi: true, }, ], bootstrap: [AppComponent], }) export class AppModule {}