为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/