我正在开发Web应用程序,并将使用基于JWT的身份验证。我的身份验证流程将是这样
/login
路由。httpOnly
Cookie中发送刷新令牌。顺便说一下,我正在使用JWT库来创建这两个令牌。/refresh_token
路由以获取新的访问令牌。/logout
路由以删除刷新令牌。现在我的第一个问题是,我不能简单地删除刷新令牌。因此,我认为在数据库的users表中添加一个version列以跟踪刷新令牌的当前版本。当用户想要注销时,我将增加版本。但是,这将从不同客户端注销用户。我不要这个我应该怎么做才能使刷新令牌无效,并确保用户可以从发送注销请求的位置注销?
更新:我认为可以代替版本,而可以在数据库中创建一个新表以将刷新令牌列入黑名单。这是否与JWT的无状态属性相矛盾?