我有一个方案,我的API通过Graph API更新了活动目录中的某些声明。
在这种情况下,我会通过响应标头通知客户端它需要刷新访问令牌,以便获得带有新声明的令牌。
问题是当我调用acquireTokenSilent
(在Msal.UserAgentApplication
中)时,会给我旧令牌。我发现发生这种情况是因为Msal将访问令牌保存在sessionStorage / localStorage中。
我是否可以在不直接删除缓存的情况下明确请求新的访问令牌?
答案 0 :(得分:1)
acquireTokenSilent
方法将在后台静默获取和更新令牌。默认情况下,访问令牌会在一小时后过期。 1小时后,您将获得一个新的访问令牌。您可以参考此document。
通常,我们可以使用刷新令牌来刷新访问令牌。但是在msal.js中,这不是透明的。无论如何,您可以看看这个answer。
您可以退出并重新登录。然后,您将获得一个新的访问令牌。
您也可以调用acquireTokenPopup
或acquireTokenRedirect
方法来获取新的访问令牌,但是它们是交互式方法。
有关更多详细信息,请参见How to renew tokens with MSAL.js。