如何解决MSAL 2 在 Angular 中的动态配置
对于我的 Angular (v12) 应用程序,我使用 MSAL 进行身份验证,但我遇到了配置问题。
在配置中,我有tenantId和app Id来初始化MSAL。
我无法使用带有 environment.ts
的标准 Angular 配置切换,因为它无法在构建后步骤中更改。
相反,我尝试加载一个 json 文件并在应用启动时使用 APP_INITIALIZER 回调调用,如本文所述:How to initialize msal configurations using APP_INITIALIZER
我对其进行了一些修改,因为 MsalAngularConfiguration
在 MSAL v2 中不再存在。
但它不起作用,在调用 ConfigService.init 之前调用了 MSALInstanceFactory
(由 AppComponent 调用,因为它依赖于 MsalGuardConfiguration
)。
我也尝试在 ConfigService
函数中传递 msalConfigFactory
,但参数未定义。
我也尝试将代码作为 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 文件设置环境对象的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。