如何使旧的JTW令牌在用户被锁定时变得无效



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

一旦发布JWT,它将保持有效,直到它自然过期(令牌中的exp声明(。

若要在过期之前使其无效,您需要吊销。此方法类似于X.509证书吊销。身份提供程序必须跟踪已吊销令牌的列表。撤销列表(最好是撤销令牌的安全散列(可以是:

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

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

最好的方法是使用短命访问令牌,并使用刷新令牌续订访问令牌。在接收每个请求的访问令牌的API中进行查找将是非常昂贵的性能。所以

所以,这一切都是关于你愿意做出什么样的权衡。

最新更新