Angular Azure AD MSAL app.module.ts动态配置在不同环境中加载
我正在使用MSAL,它是用于我的angular项目的microsoft身份验证库。在我的Angular Azure AD MSAL app.module.ts动态配置在不同环境中加载,angular,azure-active-directory,Angular,Azure Active Directory,我正在使用MSAL,它是用于我的angular项目的microsoft身份验证库。在我的app.module.ts中,我在导入部分添加了msalModule,如下所示: 在开发过程中编码和计算如何使其工作时,这很好,但我需要为生产环境动态地将变量设置为不同的值,如redirectUri、postlogutredicturi、以及clientID。我尝试使用如下对象: Object.getClientID(),Object.getRedirectUri(),但我得到一个错误,即decorator中
app.module.ts
中,我在导入部分添加了msalModule,如下所示:
在开发过程中编码和计算如何使其工作时,这很好,但我需要为生产环境动态地将变量设置为不同的值,如redirectUri
、postlogutredicturi
、以及clientID
。我尝试使用如下对象:
Object.getClientID()
,Object.getRedirectUri()
,但我得到一个错误,即decorator中不允许使用函数
在调用app.module.ts
之前,是否有方法设置静态变量?或者有没有其他方法可以动态加载MSAL的正确环境变量
谢谢
salModule.forRoot({
clientID: "<my-client-id>",
authority: "https://tenant.b2clogin.com/tfp/tenant.onmicrosoft.com/B2C_1_Signin",
redirectUri: "http://localhost:4200/dashboard",
/* default is true */
validateAuthority: false,
cacheLocation : "localStorage",
postLogoutRedirectUri: "http://localhost:4200/",
popUp: false,
})
salModule.forRoot({
客户ID:“,
权限:“https://tenant.b2clogin.com/tfp/tenant.onmicrosoft.com/B2C_1_Signin",
重定向URI:“http://localhost:4200/dashboard",
/*默认值为true*/
验证权限:false,
cacheLocation:“本地存储”,
postLogoutRedirectUri:“http://localhost:4200/",
弹出窗口:false,
})
我认为您面临的问题与异步提供程序有关
我在MSAL上遇到了同样的问题,我的解决方法是禁用aot并使用全局范围,这不是一个优雅的解决方案,但它可以工作(我希望我记住所有步骤):
的自定义js,该文件的内容应该如下:window.MY_CONF={MY_VAR:'MY VAR value here'}代码>
angular.json
文件中的配置中将aot设置为falseMsalModule.forRoot导入MSAL(窗口['MY_CONF'].MY_VAR)
config.js
,并获得依赖于环境的MSAL配置
注意:本文使用
useFactory
特性以角度的方式实现相同的结果,但AFAIK Msal lib不支持这一点。这里有一个特定的github问题,您可能想检查一下:我认为您面临的问题与异步提供程序有关
我在MSAL上遇到了同样的问题,我的解决方法是禁用aot并使用全局范围,这不是一个优雅的解决方案,但它可以工作(我希望我记住所有步骤):
的自定义js,该文件的内容应该如下:window.MY_CONF={MY_VAR:'MY VAR value here'}代码>
angular.json
文件中的配置中将aot设置为falseMsalModule.forRoot导入MSAL(窗口['MY_CONF'].MY_VAR)
config.js
,并获得依赖于环境的MSAL配置
注意:本文使用useFactory
特性以角度的方式实现相同的结果,但AFAIK Msal lib不支持这一点。这里有一个特定的github问题,您可能想检查一下: