我有一个棱角分明的应用程序。我在自己的一个库中使用angular-auth-oidc-client lib,然后使用.forRoot()注入我的应用程序。问题是,当我尝试重新加载某些状态时,AuthGuard尝试调用oidcSecurityService.isAuthorized,但似乎oidcSecurityService.isAuthorized尚不可用,并且该状态未加载。确保在代码到达AuthGuard之前运行oidcSecurityService.setupModule并确保OidcSecurityService.isAuthorizd始终可用的最佳方法是什么。
库代码 @NgModule({
imports: [
HttpClientModule,
AuthModule.forRoot(),
],
providers: [
HttpClient,
OidcSecurityService,
{
provide: HTTP_INTERCEPTORS,
useClass: RequestInterceptor,
multi: true,
},
]
})
export class LibModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: AuthInfrastructureModule,
providers: [
AuthService,
AuthGuard,
],
};
}
}
应用代码
@NgModule({
imports: [
BrowserAnimationsModule,
BrowserModule,
CommonModule,
LibModule.forRoot(),
],
providers: [
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor() {
}
}