angular2-jwt:使用工厂指令被忽略



我正在努力集成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 时,它似乎忽略了我的工厂方法并返回默认实现:

import { AuthHttp } from 'angular2-jwt';

@Injectable()导出类 SsoService {

constructor (
    private authHttp: AuthHttp,
) {}

我的模块配置是否正确?我错过了什么简单的东西吗

对于其他任何人,我将模块更改为使用内联解决方案而不是工厂类,如下所示:

  providers: [
      ...
      AuthHttp,
      provideAuth({
          noTokenScheme: true,
          tokenGetter: (() => JSON.parse( localStorage.getItem('access_token') ) ),
          globalHeaders: [{'Accept': 'application/json'}],
      })      
  ],

相关内容

  • 没有找到相关文章

最新更新