JWT 管理用户登录时,都需要把 token 存数据库里,判断用户登出时删除吗?

2020-09-22 15:47:20 +08:00
 coolair
1941 次点击
所在节点    问与答
13 条回复
ddefewfewf
2020-09-22 15:49:58 +08:00
留着也没用啊
Molita
2020-09-22 15:51:23 +08:00
不删留着干啥嘞

就是 post session 和 delete session 嘛
DavidNineRoc
2020-09-22 15:51:48 +08:00
jwt 好就好在不用存储数据库
坏就坏在不用存储数据库

正常情况下 jwt 不用处理登出, 如果非要做. 参考黑名单的实现.
## 登出的做法就是, 客户端把本地的 token 删除, 这样子就不存在这个 token, 服务端也不关心这个. 就证明这个 token 没来过
yamedie
2020-09-22 15:51:50 +08:00
服务端有主动吊销 token 需求时, 才这样做
https://www.v2ex.com/t/590337
coolair
2020-09-22 15:53:54 +08:00
@DavidNineRoc 我也是这么想的,但是领导说这样不安全,真是尴尬。
wysnylc
2020-09-22 15:54:20 +08:00
@DavidNineRoc #3 对的,jwt 只做认证不做业务,导致无法直接指定 jwt 失效只能拉黑某个 jwt 或者拉黑用户
如果有在线状态维护还是把 token 存 mongdb 或者 redis 吧
Kr98
2020-09-22 15:58:42 +08:00
jwt 无状态,session 有状态。用 jwt 又要做成有状态,说明没想清楚到底想要什么。
czzt1
2020-09-22 16:14:45 +08:00
你这么描述就说明你没理解 jwt 是啥,再去读读文档,想想 jwt 和传统 token 的区别
DavidNineRoc
2020-09-22 16:23:51 +08:00
@coolair
领导懂代码吗? 懂就按他的说
不懂按你的来
sytnishizuiai
2020-09-22 16:26:56 +08:00
我登录的 token 不存,登出存 redis+销毁时间。
最近想解决,用户修改密码或者手机号,老的 token 失效的问题,不知道有什么有效的方法。
limuyan44
2020-09-22 16:27:17 +08:00
都拿 db 存了为啥用 jwt 呢有啥优势吗,不如我们使用 jwt 存一个叫 jsessionid 的东西,然后存 redis jessionid:userinfo,这样是不是显得厉害多了,你看不仅能踢用户还能控制过期时间。
yimity
2020-09-22 16:28:26 +08:00
jwt 只是一个认证方式, 完了生成一段字符串。
你想怎么用就怎么用。
当成 token 也行,当成 session 也行。
所以不要局限自己。token 或者 session 不都是随机字符串么。
baiyi
2020-09-22 16:31:43 +08:00
如果有服务端管理的需求,那就别用 JWT 了,session 就挺好的,有很多现成的解决方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709450

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX