jwt的其他缺点?

来源:6-3 JWT单点登录原理与存在的问题及解决方案讲解

慕神4535282

2023-04-08

老师,JWT是不是还有其他的缺点?

  1. JWT一旦生成,在失效之前,总是有效的。后端没办法控制使该JWT token提前失效?从而无法强行“踢”掉一个用户的登录
  2. 请问1的解决方法是什么,把JWT token 存入 redis 中就可以解决这个问题了吗?如果是这样,那是不是与方案2( token + redis )一样了?
  3. JWT还需要消耗时间来解析(解密)才能得到用户数据,应该没有token+redis的速度快吧,但是为什么在网上看到JWT的资料这么多,比redis+token多了好多倍,为什么网上都推崇JWT而不是后者呀?就因为JWT token不储存在服务器,不会造成服务器压力 这一点吗?
  4. 如果不使用JWT而使用redis+token方案,后者部署在多台服务器上是不是没有前者的性能好?
  5. 老师,麻烦您尽量详细地解答我上述的问题,我在这个问题上纠结好久了,一直没有定下来使用哪个方案?特别是第1点,您在本章后面的小节中有给出来代码解决该问题吗?如果没有的话,麻烦您的解题思路?
    非常感谢!!!(如果没时间,晚点回答也行,希望可以得到老师您详细地解答!!!)
写回答

1回答

甲蛙

2023-04-09

如果要实现踢下线的功能,加上redis还不够,还得有数据库,记录会员ID和JWT的关联,这样才能知道同一个用户同时登录了几次。

踢下线逻辑:登录后,到数据库查同一用户的所有的JWT,将这些记录从redis中迁移。

因为大多数项目没有踢下线的需求,所以使用JWT会更简单些,不需要用redis,也就性能会更好。

如果你要踢下线,那可以考虑用token+redis+数据库的方案

0
7
慕神4535282
非常感谢!
2023-04-17
共7条回复

新版Springboot3.0打造能落地的高并发仿12306售票系统

最新版Spring3.0仿12306售票系统实战

852 学习 · 511 问题

查看课程