【问题标题】:How can I invalidate and JWT token before the expiry time using java?如何在使用 java 的到期时间之前使 JWT 令牌无效?
【发布时间】:2021-06-28 18:26:05
【问题描述】:

我正在尝试实现注销功能。我们使用 JWT 令牌进行身份验证。但是由于 JWT 令牌只有在过期后才会失效,即使在用户注销之后,如果使用旧的(未过期的)令牌,它也可以工作。 有没有办法确保 JWT 令牌失效?

【问题讨论】:

  • 一般来说:没有。这就是现在的那些工作以及它们应该如何工作。您可以在数据库中跟踪 JWT 的有效性,但是如果任何服务需要联系数据库以验证令牌,您将失去 JWT 的许多好处。此时,您可以只使用会话 cookie。
  • 正如@luk2302 提到的 - 您可以通过跟踪令牌的状态来使 JWT 无效。但为什么?只是减少令牌的生命产生时间。但是,如果您仍然想在注销操作后使令牌无效 - 您可以将它们的状态存储在 Redis 中。或者 cookie 可能是这种情况下的选项
  • 这正是不应该使用 JWT 存储会话的原因之一:curity.io/resources/learn/jwt-best-practices

标签: java spring-security oauth-2.0 jwt


【解决方案1】:

无法使 JWT 失效,但您可以减少有效时间。

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 2019-04-19
    • 2016-12-23
    • 2020-02-09
    • 2016-12-03
    • 2017-05-19
    • 2020-08-12
    • 2019-09-24
    相关资源
    最近更新 更多