3

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,
) {}

モジュール構成は正しいですか? 私は何か簡単なことを見逃しましたか

4

1 に答える 1

2

他の人のために、次のように読むために、ファクトリ クラスの代わりにインライン ソリューションを使用するようにモジュールを変更しました。

  providers: [
      ...
      AuthHttp,
      provideAuth({
          noTokenScheme: true,
          tokenGetter: (() => JSON.parse( localStorage.getItem('access_token') ) ),
          globalHeaders: [{'Accept': 'application/json'}],
      })      
  ],
于 2017-01-10T14:41:57.827 に答える