import { HttpClientModule } from '@angular/common/http'; import { APP_INITIALIZER, NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { BrowserModule } from '@angular/platform-browser'; import { AuthModule, LogLevel, OidcConfigService, OidcSecurityService } from 'angular-auth-oidc-client'; import { AppComponent } from './app.component'; import { routing } from './app.routes'; import { AuthorizationGuard } from './authorization.guard'; import { AutoLoginComponent } from './auto-login/auto-login.component'; import { ForbiddenComponent } from './forbidden/forbidden.component'; import { HomeComponent } from './home/home.component'; import { NavMenuComponent } from './nav-menu/nav-menu.component'; import { ProtectedComponent } from './protected/protected.component'; import { UnauthorizedComponent } from './unauthorized/unauthorized.component'; export function loadConfig(oidcConfigService: OidcConfigService) { return () => oidcConfigService.withConfig({ stsServer: 'https://login.microsoftonline.com/7ff95b15-dc21-4ba6-bc92-824856578fc1/v2.0', authWellknownEndpoint: 'https://login.microsoftonline.com/common/v2.0', redirectUrl: window.location.origin, clientId: 'e38ea64a-2962-4cde-bfe7-dd2822fdab32', scope: 'openid profile email api://e38ea64a-2962-4cde-bfe7-dd2822fdab32/access_as_user', responseType: 'code', silentRenew: true, maxIdTokenIatOffsetAllowedInSeconds: 600, issValidationOff: true, autoUserinfo: false, silentRenewUrl: window.location.origin + '/silent-renew.html', logLevel: LogLevel.Debug, // customParams: { // response_mode: 'fragment', // prompt: 'consent', // }, }); } @NgModule({ declarations: [ AppComponent, NavMenuComponent, HomeComponent, AutoLoginComponent, ForbiddenComponent, UnauthorizedComponent, ProtectedComponent, ], imports: [ BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), HttpClientModule, AuthModule.forRoot(), FormsModule, routing, ], providers: [ OidcSecurityService, OidcConfigService, { provide: APP_INITIALIZER, useFactory: loadConfig, deps: [OidcConfigService], multi: true, }, AuthorizationGuard, ], bootstrap: [AppComponent], }) export class AppModule {}