2
所以...我正在迁移使用HttpModule
和angular2-jwt
库的“旧”代码。如何将依赖关系传递给@ auth0-angular-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 {}
这可能吗?提前致谢。
谢谢您的回答,遗憾的是它不工作(至少对我来说)...它会抛出以下错误:'无法读取属性'拆分'null'。它看起来像'tokenGetter'甚至在'useFactory'中设置它为空。 –
非常相似的解决方案适用于我的预期。在Angular中提供者重写相当简单,如果您在不同模块中提供JWT_OPTIONS并导入JwtModule(竞争条件),则可能无法正常工作。确保你没有编译错误并使用最新的软件包版本(1.0.0-beta.6)。您可以尝试在'providers' [像这样](https://github.com/auth0/angular2-jwt/blob/v1.0/index.ts#L33-L44)中重新组装模块,而不是导入JwtModule,但结果应该与上面相同。 – estus
我正在做'app.module'中的所有内容,并且我没有任何编译错误,并且版本是最新版本(1.0.0-beta.6)。 –