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