【问题标题】:Angular dynamically load configuration for MSALMSAL 的角度动态加载配置
【发布时间】:2021-09-30 10:09:14
【问题描述】:

我已按照本指南 https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/configuration.md 使用工厂提供程序和 APP_INITIALIZER 动态加载配置。

我正在从 appsettings.json 读取的 .Net Core api 中检索设置。

一切正常,登录我的应用程序正常。但是,当浏览器在身份验证后刷新并进行 http 调用时。应用程序加载失败并出现错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot read properties of undefined (reading 'settings')
TypeError: Cannot read properties of undefined (reading 'settings')
    at Object.MSALInstanceFactory [as useFactory] (:44340/main.js:5200)
    at Object.factory (:44340/vendor.js:88500)
    at R3Injector.hydrate (:44340/vendor.js:88411)
    at R3Injector.get (:44340/vendor.js:88232)
    at injectInjectorOnly (:44340/vendor.js:82160)
    at Module.ɵɵinject (:44340/vendor.js:82164)
    at Object.MsalService_Factory [as factory] (:44340/vendor.js:35264)
    at R3Injector.hydrate (:44340/vendor.js:88411)
    at R3Injector.get (:44340/vendor.js:88232)
    at injectInjectorOnly (:44340/vendor.js:82160)
    at resolvePromise (:44340/polyfills.js:10063)
    at resolvePromise (:44340/polyfills.js:10015)
    at :44340/polyfills.js:10125
    at ZoneDelegate.invokeTask (:44340/polyfills.js:9664)
    at Object.onInvokeTask (:44340/vendor.js:105535)
    at ZoneDelegate.invokeTask (:44340/polyfills.js:9663)
    at Zone.runTask (:44340/polyfills.js:9432)
    at drainMicroTaskQueue (:44340/polyfills.js:9834)

【问题讨论】:

    标签: angular asp.net-core .net-core msal


    【解决方案1】:

    当您刷新浏览器时,您的代码会在初始化之前正确访问“设置”的值。您必须确保在访问它的值之前初始化刷新属性。在您共享的文档中,您正在使用 config.service.ts 文件中的设置属性。您需要像这样初始化属性:

    ` private settings: any = {};` 
    

    在访问它的值之前,您需要检查它是否为 undefined 的 null,如下所示:

    `if (this.setting && this.setting !== null) {`
    `// you logic`
    `}`
    

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 2018-07-23
      • 2022-01-04
      • 2017-10-10
      • 2018-10-06
      • 1970-01-01
      相关资源
      最近更新 更多