[使用OAuth 2.0 JWT Refresh令牌实现时,我遇到了一个问题,即在Web浏览器客户端上实施可靠的Refresh策略确实很困难。多个选项卡可能导致带有请求的竞速条件。
[RFC没有明确提及仅在服务器端使刷新令牌仅对一个(第一个)请求有效,但我认为在使用刷新令牌时使它们无效是一个好主意。
堆栈溢出时已经有多个“解决方案”,但似乎都不是直接的。
一种解决方案是在请求中添加抖动并通过本地存储同步请求。
如果我理解正确,您将在启动请求时将变量放入本地存储中。其他选项卡会检查是否设置了该变量,然后不启动刷新?您知道这个的示例实现吗?也许在React中?
如果您使用的是无cookie SPA,最常见的解决方案是避免刷新令牌并执行此操作:
不可食用的温泉资源
如果我了解您的设置,那么这可能对我有所帮助: