对于静态 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 {}