我正在尝试使用@auth0/angular-jwt
库来管理我的JWT,并且正在尝试完全按照他们在the docs中所说的去做:
export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
return {
tokenGetter: () => {
return identityTokenProvider.getToken();
}
};
}
@NgModule({
imports: [
CommonModule,
JwtModule.forRoot({
jwtOptionsProvider: {
provide: JWT_OPTIONS,
useFactory: jwtOptionsFactory,
deps: [IdentityTokenProvider]
}
})
]
})
export class AuthModule { }
但是当我尝试在我的库中构建它时,我得到了:
Metadata collected contains an error that will be reported at runtime: Lambda not supported. {"__symbolic":"error","message":"Lambda not supported","line":16,"character":21}
因此,我将tokenGetter
的分配更改为:
export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
return {
tokenGetter: function () { // no more lambda!
return identityTokenProvider.getToken();
}
};
}
但是当我构建时, still 会得到同样的错误,以为我有一个lambda!我很困惑,这里根本没有lambda了,对吗?我可以使它正常工作的唯一方法是这样做:
export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
function tokenGetter() {
return identityTokenProvider.getToken();
}
return {
tokenGetter: tokenGetter
};
}
我在这里完全丢失了一些东西吗?还是编译器有问题?