azure-active-directory - 通过 msal.js 刷新令牌
问题描述
我将 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 来获取令牌,这可能就是您在问题中所指的内容。
推荐阅读
- flutter - 使用flutter和firestore创建文档ID时如何存储文档ID
- javascript - Selenium Python - 将Javascript提取为字符串
- google-analytics - 气流连接构建凭据
- python - 使用 Python 库“请求”,我可以成功登录使用 JSEncrypt 函数作为 id 和 pw 的站点登录页面吗?
- java - 为什么(int i=0;我
关于二维数组的嵌套for循环,为什么应该是(int i=0;i<cars.length;i++),而不是(int i=0;i<=cars.length;i++)?
公共类主要{
public static void mai
- windows - 无法从其他文件夹加载 SQLite 扩展
- python - 自定义 template.yaml 时,部署的 Lambda 中缺少 aws-sam-cli Python requirements.txt
- image - Google Lighthouse:使用错误的 SRCSET 图像
- javascript - 如何使用 agora.io 动态创建频道
- php - 如何让 Wordpress 允许上传 .doc 和 .docx