我正在使用jwt为用户提供授权,以便在我的应用程序上执行操作。它工作得很好,因为我不必访问数据库来查看用户是否有效。我在使用jwt时遇到的问题是,当令牌过期时,用户必须重新登录。我在互联网上读到,刷新令牌可以用来解决这个问题,但没有关于它是如何工作的愚蠢的解释。它们是如何工作的?是否需要访问数据库?
发布于 2016-04-22 23:21:52
关于刷新令牌的确切工作方式,没有硬性规定。
刷新令牌的概念是某种长期存在的令牌,将来可以将其交换为新的JWT访问令牌。这允许客户端为用户请求新的JWT访问令牌,而无需用户手动进行身份验证。
完全可以分发同时也是JWT的刷新令牌,这允许您验证刷新令牌并授予新的JWT访问令牌,而无需按请求访问数据库。刷新标记也可以是您在数据库中查找的不透明字符串。
分发寿命长的JWT刷新令牌的缺点是它们更难撤销。可以在内存中保留一个已撤销的刷新令牌列表,以便在授予新的访问令牌之前进行检查,但这会删除它们的“无状态”性质。
https://stackoverflow.com/questions/30657101
复制相似问题