[英]How to configure MsAdalAngular6Module at runtime?
我正在使用這個微軟adal包裝器來管理角度單頁面應用程序中的身份驗證: https : //github.com/manishrasrani/ms-adal-angular6
基於那里的文檔,我在編譯時配置所有各種選項,這樣可以按預期工作。
@NgModule({
imports: [
MsAdalAngular6Module.forRoot({
tenant: '<YOUR TENANT>',<-------------------------------- ADD
clientId: '<YOUR CLIENT / APP ID>',<--------------------- ADD
redirectUri: window.location.origin,
endpoints: { <------------------------------------------- ADD
"https://localhost/Api/": "xxx-bae6-4760-b434-xxx",
---
---
},
navigateToLoginRequestUrl: false,
cacheLocation: '<localStorage / sessionStorage>', <------ ADD
}),
---
---
],
---
---
})
但正如我所擁有的,並且需要獨特設置的多個環境(dev,test,prod等)的自動部署管道 - 我想改為運行時。 也就是說,我不想為我部署的每個環境重新編譯。
我按照本指南關於如何在rutime上從json文件加載設置: https ://juristr.com/blog/2018/01/ng-app-runtime-config/,它運行良好,但如何以這種方式加載值在運行時進入MsAdalAngular6Module?
我遇到了同樣的問題,我通過在自己的服務中創建庫中唯一需要的東西MsAdalAngular6Service來解決它。 所以我不需要導入MsAdalAngular6Module。 缺點是您不能再使用他們的AuthenticationGuard了。 但這應該不是一個大問題,這是一個簡單的if-else,只需查看他們的代碼即可。
我自己的服務看起來像這樣:
import { Injectable } from '@angular/core';
import { MsAdalAngular6Service } from "microsoft-adal-angular6";
import { ConfigurationService } from "../configuration.service";
@Injectable( {
providedIn: 'root'
} )
export class MsAdalAdapterService {
private _adalSvc: MsAdalAngular6Service;
constructor( private configService: ConfigurationService ) {
this._adalSvc = new MsAdalAngular6Service( configService.adalConfig );
}
get adalSvc(): MsAdalAngular6Service {
return this._adalSvc;
}
}
也許那對某人有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.