如何将依赖项传递给@auth0-angular-jwt?



所以...我正在迁移使用HttpModuleangular2-jwt库的"旧"代码。

以前,我可以使用以下配置angular2-jwt

export function authHttpServiceFactory(
http: Http, options: RequestOptions, myService: MyService) {
return new AuthHttp(new AuthConfig({
globalHeaders: [{'Content-Type': 'application/json'}],
noJwtError: true,
tokenGetter: (() => myService.get('my_token'))
}), http, options);
}
@NgModule({
providers: [
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions, MyService]
}
]
})
export class AuthModule {}

。但是现在,要将其与新HttpClientModule一起使用,我必须使用新版本angular2-jwt(@auth-angular-jwt- 我知道它仍处于测试版(,并且我试图弄清楚我需要这样做才能访问我的服务以获取令牌(就像我以前所做的那样(。

我的实际配置是(与 git 的示例相同(:

@NgModule({
// ...
imports: [
HttpClientModule,
JwtModule.forRoot({
config: {
tokenGetter: () => {
return <myService>.getToken(); // Here
}
}
})
]
})
export class AppModule {}

可能吗?提前谢谢。

这可以通过覆盖配置服务来完成:

export const jwtOptionsFactory = (dependency) => ({
tokenGetter: () => dependency.getToken(),
whitelistedDomains: []
});
...
imports: [
JwtModule.forRoot({
config: { tokenGetter(): string { throw new Error('no tokenGetter') } }
})
],
providers: [{
provide: JWT_OPTIONS,
deps: [Dependency],
useFactory: jwtOptionsFactory
}]

从 1.0.0-beta.8 开始,forRoot接受期权提供程序:

...
imports: [
JwtModule.forRoot({
jwtOptionsProvider: {
provide: JWT_OPTIONS,
deps: [Dependency],
useFactory: jwtOptionsFactory
}
})
]

最新更新