0

我正在使用 azure MSAL 来验证我的 API,但问题是我正在使用 DevExtreme 自定义存储进行服务器端分页。

Msal Interceptor 为 HttpClient 工作并自动生成令牌,但在这种情况下,我不通过 h​​ttp 发送请求。

如果我使用登录后获得的访问令牌,则会发生错误无效签名,如果使用 IdToken,那么 401 我该如何解决这个问题。

MSALInterceptorConfigFactory:

protectedResourceMap.set('https://localhost:44379/api/approveMilestones', ['api://cb343c76-cd5b-4af6-8229-014b2522adab/access_as_user']);

我正在获取 accessToken 和 IdToken 的登录响应

this.authService.loginPopup()
  .subscribe((response: AuthenticationResult) => {
    AuthenticationHelper.setToken(response.accessToken);
    this.router.navigate(['/payments-approval']);
  });

我在结果中都得到了 accessToken 和 IdTOken 但如果我向它们发送对 Bearer 的请求,这些都不起作用

4

1 回答 1

0

在向服务器发送请求时,跨域时范围为空。您可以从小角度创建自己的拦截器,然后可以在开发模式下注入代码。

首先将令牌存储在localStorage中:

localStorage.setItem ('token', result.token);

在向服务器发送请求时,从浏览器获取令牌

const token = localStorage.getItem (‘token'); 并使用这样的请求发送令牌。

在这里阅读更多。

于 2021-11-19T17:08:44.840 回答