刷新令牌的工作原理(使用 jwt)
Posted
技术标签:
【中文标题】刷新令牌的工作原理(使用 jwt)【英文标题】:How refresh token works (with jwt) 【发布时间】:2015-08-19 20:20:23 【问题描述】:我正在使用 jwt 为用户提供对我的应用执行操作的授权。它很好用,因为我不必访问数据库来查看用户是否有效。我在使用 jwt 时遇到的问题是,当令牌过期时,用户必须再次登录。在互联网上阅读我一直在阅读刷新令牌可用于解决此问题,但没有关于它如何工作的白痴证明解释。它们是如何工作的?是否需要访问数据库?
【问题讨论】:
我们谈论的是浏览器用例、原生移动应用还是不同的? 【参考方案1】:对于刷新令牌的具体工作方式没有硬性规定。
刷新令牌的想法是某种长期存在的令牌,可以在将来交换新的 JWT 访问令牌。这允许客户端为用户请求新的 JWT 访问令牌,而无需用户手动进行身份验证。
完全可以分发同样是 JWT 的刷新令牌,这允许您验证刷新令牌并授予新的 JWT 访问令牌,而无需按照您的要求访问数据库。刷新令牌也可能是您在数据库中查找的不透明字符串。
分发长期 JWT 刷新令牌的缺点是它们更难撤销。可以在内存中保留一个已撤销的刷新令牌列表,在授予新访问令牌之前可以对其进行检查,但这会消除它们的“无状态”性质。
【讨论】:
以上是关于刷新令牌的工作原理(使用 jwt)的主要内容,如果未能解决你的问题,请参考以下文章
没有 cookie 的 IdentityServer4 外部身份验证