Angular中MSAL 2的动态配置



对于我的Angular(v12(应用程序,我使用MSAL进行身份验证,并且我面临配置问题。

在配置中,我有tenantId和appId来初始化MSAL。

我不能使用environment.ts的标准Angular配置切换,因为它不能在构建后的步骤中更改。

相反,我尝试加载一个json文件,并在应用程序启动时使用app_INITIALIZER回调进行调用,如本文所述:如何使用app_INITIALIZER 初始化msal配置

由于MsalAngularConfiguration在MSAL v2中已不存在,我对其进行了一些修改。

但它不起作用,对MSALInstanceFactory的调用是在调用ConfigService.init之前完成的(由AppComponent调用,因为它依赖于MsalGuardConfiguration(。

我也尝试过在msalConfigFactory函数中传递ConfigService,但参数未定义。

我也尝试过以json的形式导入代码,但它不起作用,因为我在构建它时得到了值。

知道吗?

我似乎在提供程序中重复使用了我的AppConfigService。我在当地的一家工厂也做过同样的事情,它很有效:

export function EnvConfigurationFactory(httpBackend: HttpBackend) {
return () => {
let http = new HttpClient(httpBackend);
return http.get('assets/configuration/environment.json')
.toPromise()
.then((resp) => {
for (var key in resp) {
environment[key] = resp[key];
}
})
}
} 

我使用HttpBackend而不是HttpClient,因为HTTP_INTERCEPTORS已配置并使用了我尝试设置的设置。并使用environment.json文件直接设置environment对象的值。

最新更新