Jwt 将有效或无效的json web令牌存储在数据库中

Jwt 将有效或无效的json web令牌存储在数据库中,jwt,jwt-auth,Jwt,Jwt Auth,您可能知道,没有办法使json web令牌无效,并且有几种方法可以解决它。目前有两种可能的方法吸引着我 生成任意数量的令牌。如果用户注销,只需检查该令牌是否已过期。如果没有,则将该令牌存储到数据库表invalid_token,其中encoded_token列作为保存令牌字符串的主键,以及expires_atdatetime列。如果有人试图使用该令牌,但该令牌仍然有效,服务器将检查该令牌是否存在于数据库中,如果为true,Http响应仍然为401。最后是一个cron作业,它从数据库中删除随时间过

您可能知道,没有办法使json web令牌无效,并且有几种方法可以解决它。目前有两种可能的方法吸引着我

  • 生成任意数量的令牌。如果用户注销,只需检查该令牌是否已过期。如果没有,则将该令牌存储到数据库表
    invalid_token
    ,其中
    encoded_token
    列作为保存令牌字符串的主键,以及
    expires_at
    datetime列。如果有人试图使用该令牌,但该令牌仍然有效,服务器将检查该令牌是否存在于数据库中,如果为true,Http响应仍然为401。最后是一个cron作业,它从数据库中删除随时间过期的每个令牌

    • 专业人士
    • 小型数据库表
    • 数据库中只存储仍然有效的无效令牌
    • 缺点
    • 没有关于活动用户的信息
  • 生成任意数量的令牌。将生成的每个令牌存储到数据库中,并将信息
    编码的令牌
    过期时间
    用户名
    。传入的请求不需要访问数据库,来自报头的令牌只得到验证。如果用户注销,则令牌将从数据库中删除。随着时间的推移,数据库中的其他令牌将通过cron作业被删除

    • 专业人士
    • 有关活动用户的信息
    • 缺点
    • 要存储的附加
      username
    • 更多数据,因为每个生成的未过期令牌都会被存储
也许还有其他的事情要考虑,我没有提到。这方面有什么最佳实践吗?请让我知道这个问题是否只是基于意见