#angular #msal #msal-angular
Вопрос:
Для статического веб-приложения (SPA) я настроил одну конечную точку /api/настройки. Эта конечная точка не требует аутентификации и возвращает список других конечных точек, необходимых приложению. Теперь проблема в том, что эти конечные точки, возвращаемые /api/настройками, требуют аутентификации.
В приведенном ниже коде мне нужно настроить protectedResourceMap
с помощью ответа /api/settings. Я пытался создать фабрику для 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 {}
Ответ №1:
Я бы рекомендовал вручную добавлять маркеры аутентификации к API в вашей текущей ситуации. Вы не указали, как вы уведомили свой api/настройки или как вы сохранили ответ в своем коде. Было бы полезно предоставить дополнительные рекомендации, если бы вы могли поделиться ими.