Javascript 角度4/5-使用动态配置实例化服务
我目前正在编写一个库,它公开了一个Javascript 角度4/5-使用动态配置实例化服务,javascript,angular,typescript,authentication,angular-services,Javascript,Angular,Typescript,Authentication,Angular Services,我目前正在编写一个库,它公开了一个AuthModule,其中包含一个AuthService,用于使用oidc客户端js处理OAuth2身份验证。但是,我希望使用应用程序为OAuth客户机指定配置。我知道我可以将配置传递到AuthModule的forRoot方法中,如下所示: AuthModule.forRoot({ applicationNamespace: 'ConsumingApp', clientId: 'consuming.app' }); export const A
AuthModule
,其中包含一个AuthService
,用于使用oidc客户端js
处理OAuth2身份验证。但是,我希望使用应用程序为OAuth客户机指定配置。我知道我可以将配置传递到AuthModule
的forRoot
方法中,如下所示:
AuthModule.forRoot({
applicationNamespace: 'ConsumingApp',
clientId: 'consuming.app'
});
export const AUTH_CONFIG = new InjectionToken<AuthConfig>('authConfig');
在forRoot
方法中,我想提供一个带有传入配置的服务实例
我通过在窗口
对象上设置传入的属性,成功地破解了它。然后在AuthService
中使用对window.clientId
和window.applicationNamespace
的引用
(window as any).applicationNamespace = authConfig.applicationNamespace;
(window as any).clientId = authConfig.clientId;
有没有更好的方法来实现这一点?这可以通过以下方式使用注入令牌来实现 步骤1:为传入的配置对象创建一个
InjectionToken
,如下所示:
AuthModule.forRoot({
applicationNamespace: 'ConsumingApp',
clientId: 'consuming.app'
});
export const AUTH_CONFIG = new InjectionToken<AuthConfig>('authConfig');
步骤4:使用传入的配置作为注入令牌的值
{ provide: AUTH_CONFIG, useValue: authConfig }
真正地没有人?