如何在运行时配置MsAdalAngular6Module?

问题描述 投票:3回答:1

我正在使用这个微软adal包装器来管理角度单页面应用程序中的身份验证:https://github.com/manishrasrani/ms-adal-angular6

基于那里的文档,我在编译时配置所有各种选项,这样可以按预期工作。

@NgModule({
imports: [
    MsAdalAngular6Module.forRoot({
      tenant: '<YOUR TENANT>',<-------------------------------- ADD
      clientId: '<YOUR CLIENT / APP ID>',<--------------------- ADD
      redirectUri: window.location.origin,
      endpoints: { <------------------------------------------- ADD
        "https://localhost/Api/": "xxx-bae6-4760-b434-xxx",
        ---
        ---
      },
      navigateToLoginRequestUrl: false,
      cacheLocation: '<localStorage / sessionStorage>', <------ ADD
    }),
    ---
    ---
  ],
  ---
  ---
})

但正如我所拥有的,并且需要独特设置的多个环境(dev,test,prod等)的自动部署管道 - 我想改为运行时。也就是说,我不想为我部署的每个环境重新编译。

我按照本指南关于如何在运行时从json文件加载设置:qazxsw poi哪个很好用,但是如何在运行时将值加载到MsAdalAngular6Module中?

javascript angular typescript adal microsoft-adal-angular6
1个回答
0
投票

我遇到了同样的问题,我通过在自己的服务中创建库中唯一需要的东西MsAdalAngular6Service来解决它。所以我不需要导入MsAdalAngular6Module。缺点是您不能再使用他们的AuthenticationGuard了。但这应该不是一个大问题,这是一个简单的if-else,只需查看他们的代码即可。

我自己的服务看起来像这样:

https://juristr.com/blog/2018/01/ng-app-runtime-config/

也许那对某人有用。

© www.soinside.com 2019 - 2024. All rights reserved.