0

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

在下面的代码中,我需要配置/api/settingsprotectedResourceMap的响应。我试图为提供者建立一个工厂,但我认为它不起作用,因为它最终处于循环依赖中。MSAL_INTERCEPTOR_CONFIG

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

@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'],
        },
      },
      {
        interactionType: InteractionType.Redirect, // MSAL Interceptor Configuration
        protectedResourceMap: new Map<string, string[]>(),
      }
    ),
  ],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: MsalInterceptor,
      multi: true,
    },
    MsalGuard,
  ],
  bootstrap: [AppComponent, MsalRedirectComponent],
})
export class AppModule {}
4

1 回答 1

0

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

于 2021-08-08T04:17:00.523 回答