我正在使用jwt为用户提供授权,以便对我的应用执行操作。它工作得很好,因为我不必点击数据库来查看用户是否有效。我面对jwt的问题是,当令牌过期时,用户必须再次登录。在互联网上阅读我一直在阅读刷新令牌可用于解决这个问题,但没有关于它如何工作的白痴证明解释。他们是如何工作的?是否需要数据库访问?
答案 0 :(得分:1)
对于刷新令牌的确切运作方式,并没有严格的规则。
刷新令牌的想法是某种长期存在的令牌,可以在将来交换新的JWT访问令牌。这允许客户端为用户请求新的JWT访问令牌,而无需用户手动进行身份验证。
完全可以分发同样是JWT的刷新令牌,它允许您验证刷新令牌并授予新的JWT访问令牌,而无需按照您的请求访问数据库。刷新令牌也可以是您在数据库中查找的不透明字符串。
分发长期使用的JWT刷新令牌的缺点是它们更难撤销。可以在内存中保留已撤销的刷新令牌列表,可以在授予新的访问令牌之前对其进行检查,但这会删除“无状态”"性质。