Azure active directory 通过msal.js刷新令牌

Azure active directory 通过msal.js刷新令牌,azure-active-directory,azure-ad-b2c,msal,msal.js,Azure Active Directory,Azure Ad B2c,Msal,Msal.js,我正在为我的React.js应用程序使用Azure AD B2C,我注意到过了一段时间,所有用户请求都被我的API拒绝为未经授权 我很确定问题是jwt令牌过期了。我正在使用msal.js从Azure AD B2C获取我的令牌 我找到了一段关于微软文档的短文,但找不到任何例子。此外,我的研究表明,我需要打开一个新窗口,手动发出HTTP请求。这是正确的吗 有人能告诉我在哪里可以找到这些示例吗?在调用API之前,请始终调用acquireTokenSilent。让MSAL进行缓存、刷新等,这就是它的用途

我正在为我的React.js应用程序使用Azure AD B2C,我注意到过了一段时间,所有用户请求都被我的API拒绝为未经授权

我很确定问题是
jwt
令牌过期了。我正在使用
msal.js
从Azure AD B2C获取我的令牌

我找到了一段关于微软文档的短文,但找不到任何例子。此外,我的研究表明,我需要打开一个新窗口,手动发出HTTP请求。这是正确的吗


有人能告诉我在哪里可以找到这些示例吗?

在调用API之前,请始终调用
acquireTokenSilent
。让MSAL进行缓存、刷新等,这就是它的用途。如果静默失败,则返回到AcquireTokenPopup或类似选项


旁注:对于
acquireTokenSilent
,MSAL实际上正在创建一个隐藏的iframe来获取令牌,这可能就是您在问题中提到的。

您是否正在对令牌进行缓存?如果在MSAL.JS上调用acquireToken API,则应始终获得有效的令牌。它自己进行缓存,如果令牌过期,它将使用隐藏的iframe自动获取一个新令牌。我不缓存任何东西,它显然不会自动刷新令牌。当用户单击登录到应用程序时,他/她将被重定向到Azure AD B2C,并带着存储在会话存储中的令牌返回。这就是我目前正在做的一切。你能告诉我在哪里可以找到一些示例代码来告诉我应该做什么吗?
    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);
            });
        })
    }