我很难在这个配置中使用 openId auth 包......
我有 3 个模块:
模块 1:mainApplication 模块 2:核心模块 3:门户
我在核心模块中有一个服务(AuthService),从 angular-oauth2-oidc 扩展 OAuthService。
这只是一种将依赖项与 angular-oauth2-oidc 隔离的方法。
mainApplication 模块正在加载门户和核心服务。
@NgModule({
declarations: [
],
entryComponents: [
],
imports: [
CommonModule,
IsocialCoreModule.forRoot(),
IsocialPortalModule.forRoot(portalConfig),
])}
export class MyMainApp {}
我的门户模块:
...
imports: [
MyCoreModule,
],
})
export class MyPortalModule {
static forRoot(config: PortalConfig): ModuleWithProviders {
return {
ngModule: PortalModule,
providers: [ConfigService,
{provide: PortalConfigToken, useValue: config},
AuthService] // --> Error if not added
};
}
}
我的核心模块:
@NgModule({
imports: [
HttpModule,
OAuthModule.forRoot()
],
declarations: [],
})
export class MyCoreModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyCoreModule,
providers: [BasicGuardService, AuthService // Error if not added]
};
}
}
我的配置服务:
constructor(@Inject(PortalConfigToken) private portalConfig: PortalConfig, private authService: AuthService) {
this.config = this.portalConfig;
this.authService.configure(this.portalConfig.authConfig);
}
似乎 AuthService 不止一次被实例化......
而且我在配置服务和使用它的那一刻之间丢失了配置。