我正在构建一个新的身份验证服务,并希望使用一次性刷新令牌。
理论上它工作得很好,但是我如何处理多个选项卡之间的共享令牌,并且不会遇到多个选项卡尝试同时使用相同刷新令牌获取一组新令牌的竞争条件。
因为这些调用中只有一个会成功,而其他选项卡将收到错误。那时,他们只会假设令牌无效,并将用户从这些选项卡中注销,这不是所需的体验。
是否有一些标准前端库已经解决了这个问题?
因为我已经阅读了多个解决方案,说在前端使用随机变量,所以同时刷新多个选项卡的机会减少了,这本身看起来并不是这个问题的最佳解决方案
一种选择是将令牌存储在本地存储中。它在同一域的所有选项卡之间共享。这假设您没有使用计时器。
如果您使用计时器,即每个选项卡在旧选项卡过期时获取刷新令牌,那么您可能希望使用选项卡间通信来同步所有选项卡。查看选项卡或窗口之间的通信。