Had*_*ano 5 azure single-page-application reactjs azure-active-directory azure-ad-msal
我有一个 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;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13288 次 |
| 最近记录: |