JWTModule вводит белый список - PullRequest
0 голосов
/ 03 ноября 2018

В моем угловом приложении есть внешний конфигурационный файл, поэтому я могу изменить его, например. URL-адрес API без построения.

Дополнительно я использую @ auth-angular-jwt

В app-module.ts в разделе импорта я должен объявить JWTModule следующим образом:

imports: [
 ...
 JwtModule.forRoot({
   config: {
    tokenGetter: tokenGetter,
    whitelistedDomains: getWhiteList()
   }
})
],
...
],
providers: [
    AppConfig,
    { provide: APP_INITIALIZER,
      useFactory: initializeApp,
      deps: [AppConfig], multi: true },
],

bootstrap: [AppComponent]
})

Для модуля JWT я должен предоставить массив whitelistedDomains. Это также следует прочитать из файла конфигурации.

Это не работает, потому что APP_INITIALIZER запускается после секции импорта. Так что мой AppConfig не определен. Как мне этого добиться.

Вот как выглядит мой AppConfig:

import { Http, Response } from '@angular/http';
import { IAppConfig } from './app-config.model';
import { Injectable } from '@angular/core';

@Injectable()
export class AppConfig {

    static settings: IAppConfig;

    constructor(private http: Http) {}

    load() {
        const jsonFile = `assets/config/config.json`;
        return new Promise<void>((resolve, reject) => {
            this.http.get(jsonFile).toPromise().then((response : Response) => {
               AppConfig.settings = <IAppConfig>response.json();
               resolve();
            }).catch((response: any) => {
               reject(`Could not load file '${jsonFile}': ${JSON.stringify(response)}`);
            });
        });
    }
}

А вот как выглядит мой конфиг:

export interface IAppConfig {
    env: {
        name: string;
    }
    logging: {
        console: boolean;
    };
    apiServer: {
        url:string
        signalRUrl: string
        whiteListDomains: string[]
    };
}

Есть идеи?

С наилучшими пожеланиями!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...