我将 Azure AD B2C 用于我的 React.js 应用程序,我注意到一段时间后,所有用户请求都被我的 API 拒绝为未经授权。
我很确定问题是jwt
令牌过期了。我正在使用msal.js
从 Azure AD B2C 获取我的令牌。
我在 Microsoft Docs 上找到了一小段,但找不到任何示例。此外,我的研究表明我需要打开一个新窗口并手动发出 HTTP 请求。这个对吗?
有人能告诉我在哪里可以找到这方面的一些例子吗?
我将 Azure AD B2C 用于我的 React.js 应用程序,我注意到一段时间后,所有用户请求都被我的 API 拒绝为未经授权。
我很确定问题是jwt
令牌过期了。我正在使用msal.js
从 Azure AD B2C 获取我的令牌。
我在 Microsoft Docs 上找到了一小段,但找不到任何示例。此外,我的研究表明我需要打开一个新窗口并手动发出 HTTP 请求。这个对吗?
有人能告诉我在哪里可以找到这方面的一些例子吗?
acquireTokenSilent
在调用API 之前始终调用。让 MSAL 做缓存、刷新等,这就是它的用途。如果静默失败,则回退到 AcquireTokenPopup 或类似方法。
https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp
function callApi() {
clientApplication.acquireTokenSilent(applicationConfig.b2cScopes).then(function (accessToken) {
callApiWithAccessToken(accessToken);
}, function (error) {
clientApplication.acquireTokenPopup(applicationConfig.b2cScopes).then(function (accessToken) {
callApiWithAccessToken(accessToken);
}, function (error) {
logMessage("Error acquiring the access token to call the Web api:\n" + error);
});
})
}
旁注:对于acquireTokenSilent
,MSAL 实际上是在创建一个隐藏的 iframe 来获取令牌,这可能就是您在问题中所指的内容。