微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 API 获取 MSAL 拦截器配置

如何解决从 API 获取 MSAL 拦截器配置

对于静态 Web 应用 (SPA),我已经配置了一个端点 /api/settings。此端点不需要身份验证并返回应用程序中所需的其他端点的列表。现在的问题是,/api/settings 返回的这些端点确实需要身份验证。

在下面的代码中,我需要使用 /api/settings 的响应来配置 protectedResourceMap。我尝试为 MSAL_INTERCEPTOR_CONfig 提供程序构建一个工厂,但我认为它不起作用,因为它最终处于循环依赖中。

有没有人有从 API 响应创建 protectedResourceMap解决方案?另一种方法是在请求端点时手动附加令牌,但我也找不到这样做的方法

@NgModule({
  declarations: [
    // ...
  ],imports: [
    // ...
    HttpClientModule,MsalModule.forRoot(
      new PublicclientApplication({
        auth: {
          clientId: environment.msalClientId,authority: environment.msalAuthority,redirectUri: '/',},cache: {
          cacheLocation: 'localStorage',storeAuthStateInCookie: isIE,// Set to true for Internet Explorer 11
        },}),{
        interactionType: InteractionType.Redirect,// MSAL Guard Configuration
        authRequest: {
          scopes: [environment.msalClientId + '/.default'],// MSAL Interceptor Configuration
        protectedResourceMap: new Map<string,string[]>(),}
    ),],providers: [
    {
      provide: HTTP_INTERCEPTORS,useClass: MsalInterceptor,multi: true,MsalGuard,bootstrap: [AppComponent,MsalRedirectComponent],})
export class AppModule {}

解决方法

我建议在您当前的情况下手动将身份验证令牌附加到 apis。您没有指定如何通知 api/settings 或如何在代码中保存响应。如果您能分享,提供更多指导会很有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。