React SPA 中的 msal - 使用从 AcquireTokenRedirect 收到的访问令牌

2024-02-19

我有一个 React SPA,并且正在使用 msal 通过 loginRedirect 对 Microsoft 用户进行身份验证。登录后,我使用 acquireTokenSilent 静默获取访问令牌来调用 Web API。当获取访问令牌失败并且需要交互时,我使用 acquireTokenRedirect。

当我使用 acquireTokenRedirect 时,我看到的是: 1. 用户被重定向到login.microsoftonline.com。 2. 返回 302 响应,其中包含重定向 url + 访问令牌的 Location 标头。 3. 对我的重定向 URL 的 GET 请求 - 我的回调被调用。 4. 另一个重定向到我的应用程序根目录。

最后一次重定向使我的应用程序再次得到服务,并且我丢失了应用程序状态的访问令牌。此外,我失去了将用户重定向到特定路线的能力。

获取访问令牌:

getAccessToken = async () => {
    let accessTokenRequest = { scopes: [...]
    };
    try {
      var accessTokenResponse = await 
      this.authAgent.acquireTokenSilent(accessTokenRequest);
      return accessTokenResponse.accessToken;
    } catch (error) {
      const errorCode = error.name;
      if (errorCode === "consent_required" || errorCode === "interaction_required") {
        await this.authAgent.acquireTokenRedirect(accessTokenRequest);
      }

      throw error;
    }
  };

为了避免额外的重定向,我需要做的是将 Auth 配置中的“navigateToLoginRequestUrl”参数设置为 false。这解决了我的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React SPA 中的 msal - 使用从 AcquireTokenRedirect 收到的访问令牌 的相关文章

随机推荐