Azure AD 令牌验证失败,"level":30,"msg":"authentication failed due to: invalid signature"

Azure AD token verification failed , "level":30,"msg":"authentication failed due to: invalid signature"

我正在从前端调用后端-api,出于身份验证的目的,我使用 azure-ad onfronted 和后端,当我第一次获取 API 时,请求得到验证,但对于下一个 api调用,前面是调用方法

  const checkAccessTokenandGenerateIfExpired = () => {
    const account = msalInstance.getAllAccounts()[0];
    const accessTokenRequest = {
      scopes: ["User.Read"],
      account: account
    }
    msalInstance.acquireTokenSilent(accessTokenRequest).then(function (accessTokenResponse) {
      let accessToken = accessTokenResponse.accessToken;
      localStorage.removeItem("token");
      localStorage.setItem("token", accessToken);
      return toString(accessToken)
    }).catch(function (error) {
      if (error instanceof InteractionRequiredAuthError) {
        msalInstance.acquireTokenPopup(accessTokenRequest).then(function (accessTokenResponse) {
          console.log(accessTokenResponse)
          let accessToken = accessTokenResponse.accessToken;
          localStorage.removeItem("token");
          localStorage.setItem("token", accessToken);
        }).catch(function (error) {
          console.log(error);
        });
      }
      console.log(error);
    });

  };

后端 returns : - 身份验证失败

不知道上面的代码有什么错误,因为上面的代码块在第二次 API 调用期间生成了新令牌

这是因为您在 accessTokenRequest (User.Read) 中使用了 Microsoft Graph API 范围。您需要为 API 使用范围,而不是 MS Graph。您可以在 API 应用注册的“公开 API”页面中定义它们。