JWTModule注入白名单

时间:2018-11-03 16:36:30

标签: angular jwt

在我的angular应用程序中有一个外部配置文件,因此我可以更改f.e.没有构建的API网址。

另外,我使用@auth-angular-jwt

在导入部分的 app-module.ts 中,我必须像这样声明JWTModule:

df['Col5'] = df.Col3 * df.Col4
gf = df.groupby(['col1', 'Col5'])

对于JWT模块,我必须提供一个whitelistedDomains数组。 这也应该从配置文件中读取。

这不起作用,因为APP_INITIALIZER在导入部分之后运行。所以我的AppConfig是未定义的。我该怎么做到。

这是我的AppConfig的样子:

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

bootstrap: [AppComponent]
})

这是我的配置:

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)}`);
            });
        });
    }
}

有什么想法吗?

最诚挚的问候!

0 个答案:

没有答案