代码之家  ›  专栏  ›  技术社区  ›  Sam

刷新令牌通过msal.js公司

  •  0
  • Sam  · 技术社区  · 6 年前

    我正在使用Azure广告B2C作为我的反应.js我注意到,过了一段时间,所有的用户请求都被我的API拒绝,认为是未经授权的。

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

    我在微软文档上找到了一个简短的段落,但找不到任何例子。我的研究还表明,我需要打开一个新的窗口,手动发出一个HTTP请求。是这样吗?

    有人能告诉我在哪里能找到这样的例子吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alex AIT    6 年前

    总是打电话 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);
                });
            })
        }
    

    旁注:用于 获取令牌沉默 ,MSAL实际上正在创建一个隐藏的iframe来获取令牌,这可能就是您在问题中所指的。