使用版本获取刷新令牌

时间:2020-03-29 13:59:20

标签: jwt jwt-auth

我正在开发Web应用程序,并将使用基于JWT的身份验证。我的身份验证流程将是这样

  1. 客户端使用凭据将请求发送到/login路由。
  2. 服务器根据数据库检查凭据。
  3. 如果正确,请创建访问令牌(有效期短)并使用用户名作为有效负载刷新令牌(有效期长)。发送访问令牌作为响应,在httpOnly Cookie中发送刷新令牌。顺便说一下,我正在使用JWT库来创建这两个令牌。
  4. 客户端通过cookie将刷新令牌发送到/refresh_token路由以获取新的访问令牌。
  5. 要注销,我将在客户端清除访问令牌,然后将带有刷新令牌的请求发送到/logout路由以删除刷新令牌。

现在我的第一个问题是,我不能简单地删除刷新令牌。因此,我认为在数据库的users表中添加一个version列以跟踪刷新令牌的当前版本。当用户想要注销时,我将增加版本。但是,这将从不同客户端注销用户。我不要这个我应该怎么做才能使刷新令牌无效,并确保用户可以从发送注销请求的位置注销?

更新:我认为可以代替版本,而可以在数据库中创建一个新表以将刷新令牌列入黑名单。这是否与JWT的无状态属性相矛盾?

0 个答案:

没有答案