如何解决MSAL 浏览器刷新令牌
在 MSAL 浏览器中,acquireTokenSlient 在每次调用令牌端点时获取刷新令牌。第一个刷新令牌的持续时间为 1 天。随后的刷新令牌都减少了(剩余的)到期时间。刷新令牌最终到期后,如果存在 AD 会话,则在进行令牌调用之前,将在 iframe 中返回授权代码。如果这种对身份验证代码的静默检索失败,我们必须使用交互式方法调用。
现在 AD 会话通常持续一天。那么我们是说用户会因为刷新令牌已过期和 AD Session 已过期而总是在一天后被迫进行交互式登录吗?
或者 AD Session 是否为每个令牌调用滚动,以便过期的刷新令牌可以通过上面提到的 iframe 调用静默出现?
如果他一直在不间断地进行令牌调用,我需要用户无需登录即可访问令牌。使用 msal-browswr 刷新令牌可以吗?在每次通过 aquireTokenSilent 调用授权端点后,MSAL.js 似乎都会在 AD 会话上滚动 - 所以它没有问题。但我不能使用它,因为 Safari 会阻止需要每小时进行一次交互式调用的 3rd 方 cookie - 这本质上是应用程序的刷新。
解决方法
AcquireTokenSilent 能够在接近到期时刷新令牌(因为令牌缓存还包含刷新令牌)。如果acquireTokenSilent 调用尝试刷新令牌调用并且刷新令牌已过期,MSAL 将尝试在iframe 中发出静默请求以获取新的授权代码。如果您的会话仍然存在,您将静默获取一个新的授权码,该授权码将立即用于交易访问令牌。
如果对新授权码的静默 iframe 调用失败,则需要发起交互请求。发生这种情况的原因有很多,包括范围已撤销、令牌过期或密码更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。