如何解决从 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 举报,一经查实,本站将立刻删除。