我正在努力集成angular2-jwt包。我已经编写了以下带有自定义配置选项的函数
import { Http, Headers, RequestOptions } from '@angular/http';
import { provideAuth, AuthHttp, AuthConfig } from 'angular2-jwt';
import { Injectable } from '@angular/core';
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp( new AuthConfig({
noTokenScheme: true,
tokenGetter: (() => JSON.parse( localStorage.getItem('access_token') ) ),
globalHeaders: [{'Accept': 'application/json'}],
}), this.http, this.options);
}在我的模块定义中,我包含了以下几行
providers: [
...,
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions]
}
],但是,当我试图在服务中使用AuthHttp时,它似乎忽略了我的工厂方法,并返回了一个默认实现:
从‘angular2-jwt’导入{ AuthHttp };
@Injectable()导出类SsoService {
constructor (
private authHttp: AuthHttp,
) {}我的模块配置是否正确?我错过了什么简单的东西吗?
发布于 2017-01-10 22:41:58
对于其他任何人,我将模块更改为使用内联解决方案,而不是工厂类,如下所示:
providers: [
...
AuthHttp,
provideAuth({
noTokenScheme: true,
tokenGetter: (() => JSON.parse( localStorage.getItem('access_token') ) ),
globalHeaders: [{'Accept': 'application/json'}],
})
],https://stackoverflow.com/questions/41570593
复制相似问题