msalObj.acquireTokenSilent()设置触发器的各种方式有哪些,以便当存储在本地存储中的id_token过期时调用该触发器?
我曾尝试通过setTimeout()调用该函数,但是随着页面刷新,setTimeout丢失了。
有没有实现上述逻辑的更有效方法?

最佳答案

我们始终以acquireTokenSilent开头,以从缓存中获取已登录用户的令牌。当acquireTokenSilent失败(令牌过期)时,我们将调用acquireTokenPopup

myMSALObj.acquireTokenSilent(requestObj).then(function (tokenResponse) {
         callMSGraph(graphConfig.graphMeEndpoint, tokenResponse.accessToken, graphAPICallback);
    }).catch(function (error) {
         console.log(error);
         // Upon acquireTokenSilent failure (due to consent or interaction or login required ONLY)
         // Call acquireTokenPopup(popup window)
         if (requiresInteraction(error.errorCode)) {
             myMSALObj.acquireTokenPopup(requestObj).then(function (tokenResponse) {
                 callMSGraph(graphConfig.graphMeEndpoint, tokenResponse.accessToken, graphAPICallback);
             }).catch(function (error) {
                 console.log(error);
             });
         }
    });

关于javascript - 通过MSAL的msalObj.acquireTokenSilent()方法,可以在什么触发条件下静默获取id_token?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60568440/

10-11 17:24