1

この構成で openId 認証パッケージを使用するのに苦労しています....

私は3つのモジュールを持っています:

モジュール 1 : mainApplication モジュール 2 : コア モジュール 3 : ポータル

angular-oauth2-oidc から OAuthService を拡張して、コア モジュールにサービス (AuthService) があります。

これは、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 が複数回インスタンス化されているようです...

そして、サービスを構成した瞬間とそれを使用した瞬間の間に構成を失いました。

4

1 に答える 1