Angular MSAL 2在角场中的动态组态

Angular MSAL 2在角场中的动态组态,angular,configuration,post-build,msal-angular,Angular,Configuration,Post Build,Msal Angular,对于我的Angular(v12)应用程序,我使用MSAL进行身份验证,我面临一个配置问题 在配置中,我有租户Id和应用Id来初始化MSAL 我无法将标准角度配置切换用于environment.ts,因为它不能在后期构建步骤中更改 相反,我尝试加载一个json文件,并在应用程序启动时使用app_初始值设定项callback调用,如本文所述: 由于MsalAngularConfiguration在MSALv2中不再存在,我对其进行了一些修改 但它不起作用,在调用ConfigService.init(

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

在配置中,我有租户Id和应用Id来初始化MSAL

我无法将标准角度配置切换用于
environment.ts
,因为它不能在后期构建步骤中更改

相反,我尝试加载一个json文件,并在应用程序启动时使用app_初始值设定项callback调用,如本文所述:

由于
MsalAngularConfiguration
在MSALv2中不再存在,我对其进行了一些修改

但它不起作用,在调用ConfigService.init(由AppComponent调用,因为它取决于
MsalGuardConfiguration
)之前完成了对
MSALInstanceFactory
的调用

我还尝试在
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_拦截器并使用了我尝试设置的设置。
我用environment.json文件直接设置了environment对象的值。

我也有同样的问题。你能共享你的app.module文件吗?在提供者部分使用上面的工厂:`providers:[{provide:app_INITIALIZER,useFactory:EnvConfigurationFactory,deps:[HttpBackend],multi:true},]`我添加了相同的内容。但是当我访问导出函数MSALInstanceFactory():IPublicClientApplication{返回新的PublicClientApplication({auth:{//clientId:configService.getSettings(“clientId”),//authority:configService.getSettings(“authority”),//重定向URI:configService.getSettings(“重定向URI”)时,我变得没有定义clientId:config.clientId,authority:config.authority,redirectUri:“},缓存:{cacheLocation:'localStorage',storeAuthStateInCookie:isIE,//设置为true for Internet Explorer 11}}}我想将promise的结果存储到全局,这样我就可以在其他地方访问它,但我没有定义