【问题标题】:How to make old JTW token become invalid when user was locked用户被锁定时如何使旧的 JWT 令牌失效
【发布时间】:2021-11-22 16:27:17
【问题描述】:

我有一个身份服务器 4. 当我尝试锁定用户时,该用户仍然可以访问 API,因为 JWT 令牌似乎仍然有效。 我该怎么办?

【问题讨论】:

标签: identityserver4


【解决方案1】:

一旦发出 JWT,它就会一直有效,直到它自然过期(令牌中的exp 声明)。

要在到期前使​​其失效,您需要撤销它。这种方法类似于 X.509 证书吊销。身份提供者必​​须跟踪已撤销令牌的列表。该撤销列表(最好是已撤销令牌的安全哈希)可以是:

  • 通过通道异步分发(例如 Kafka)
  • 通过服务公开(查询已撤销令牌哈希的列表,或查询单个 JWT 是否已撤销)。这会给 JWT 验证带来很大的开销,因为每个请求都需要额外的服务调用。

更简单且推荐的解决方案是限制 JWT 的有效期(例如,10 分钟),并使用刷新令牌(在仅 HTTP 的 cookie 中)在 JWT 过期之前刷新它。

【讨论】:

    【解决方案2】:

    最好的办法是使用短期访问令牌并使用刷新令牌来更新访问令牌。在接收每个请求的访问令牌的 API 中进行查找将是非常昂贵的性能明智。所以

    所以,关键在于您愿意做出哪些取舍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 2018-04-21
      • 2019-03-19
      • 2017-01-06
      • 2020-02-09
      • 2020-08-12
      • 2016-12-03
      相关资源
      最近更新 更多