删除JWT中引用的资源时验证有效负载

时间:2016-01-12 11:11:57

标签: authentication token jwt

我正在使用JWT进行身份验证,在其中我只放置了数据库中的用户ID。然后在每次请求后,我将在验证令牌后访问该有效负载。这很棒! 问题是当用户以某种方式被删除时,令牌中的用户ID无效。但令牌本身并不知道用户已从数据库中删除。而且我不能强制令牌无效,因为它会在特定的时间内到期。

是否会对每个请求进行数据库查询,以查看用户ID是否确实在数据库中?我可以想象它不是一个好的解决方案,因为它可能在很多并经常收到请求时非常缓慢。

1 个答案:

答案 0 :(得分:0)

实际上,使用JWT令牌的一个优点是,您可以在不与中央服务器或数据库通信的情况下验证其有效性。

这样做的缺点是很难撤销令牌。如果查询数据库以验证令牌,则会损害系统的可伸缩性并引入单点故障。

更好的方法可能是不撤销令牌并保持令牌的生命周期短。如果客户端必须每15分钟更新一次令牌,则可能不再需要撤销。