对于我的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对象的值。