【问题标题】:How to configure MsAdalAngular6Module at runtime?如何在运行时配置 MsAdalAngular6Module?
【发布时间】:2019-03-10 06:30:51
【问题描述】:

我正在使用这个 microsoft adal 包装器来管理 Angular 单页应用程序中的身份验证: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
    }),
    ---
    ---
  ],
  ---
  ---
})

但正如我所拥有的和需要独特设置的多个环境(开发、测试、产品等)的自动化部署管道一样 - 我想改为执行此运行时。也就是说,我不想为我部署到的每个环境重新编译。

我遵循了关于如何在 rutime 时从 json 文件加载设置的指南:https://juristr.com/blog/2018/01/ng-app-runtime-config/ 效果很好,但是如何在运行时以这种方式将值加载到 MsAdalAngular6Module 中?

【问题讨论】:

  • 有任何见解吗?我也有同样的困境。
  • 我意识到这个包很小,所以我只是复制了代码而不是尝试使用这个包。发现无法在运行时使用该包进行配置。
  • 我想你没有找到解决办法??

标签: javascript angular typescript adal microsoft-adal-angular6


【解决方案1】:

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

我自己的服务如下所示:

import { Injectable } from '@angular/core';
import { MsAdalAngular6Service } from "microsoft-adal-angular6";
import { ConfigurationService } from "../configuration.service";

@Injectable( {
    providedIn: 'root'
} )
export class MsAdalAdapterService {

    private _adalSvc: MsAdalAngular6Service;

    constructor( private configService: ConfigurationService ) {
        this._adalSvc = new MsAdalAngular6Service( configService.adalConfig );
    }

    get adalSvc(): MsAdalAngular6Service {
        return this._adalSvc;
    }
}

也许这对某人有用。

【讨论】:

  • 如何在模块中实现这个?
  • 模块中没有什么要实现的。我只是将我的 AdapterService 注入我需要进行身份验证的地方。我写了一个 authguard 重定向到登录页面,然后调用adalAdapterService.adalSvc.login()
猜你喜欢
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
相关资源
最近更新 更多