jwt 如何做在线踢人功能?

2023-10-11 11:47:09 +08:00
 SkyLine7

不依赖第三方中间件(比如 redis )

10094 次点击
所在节点    Java
73 条回复
8355
2023-10-12 09:49:05 +08:00
你们的 jwt 不校验的吗????
震惊了。。。
bk201
2023-10-12 09:57:01 +08:00
定时换密钥,但是会把人全踢了。
nobject
2023-10-12 09:57:22 +08:00
个人觉得加个黑名单就简单,要踢人,或者后台删除一个用户,用户修改重置密码等,都可以把这个用户加入到黑名单中。依靠 jwt 本身的功能,只能有效期设置短点吧
neptuno
2023-10-12 10:20:31 +08:00
加个 jwt 黑名单
Torpedo
2023-10-12 10:36:51 +08:00
核心就是有没有查库呗。把你的 jwt 校验增加查库的这一步应该就可以了
tairan2006
2023-10-12 10:45:14 +08:00
我工作这么多年就没用过 jwt…
pengxiaoyu
2023-10-12 11:14:30 +08:00
我的理解是 jwt 解析->userid+roleid 等信息,那这个用户是否是黑名单用户,是由用户服务告诉我的。拦截器里查询用户服务告诉我是否要把他踢掉。而用户服务是否去查表还是查 Redis ,和网关无关,网关只做了从 jwt 解析这一步。
mxT52CRuqR6o5
2023-10-12 11:15:46 +08:00
恭喜你,用一种很别扭的方式重新实现了 session
coala
2023-10-12 12:30:31 +08:00
退而求其次,

当前时间之前的 这个用户的签发 jwt 全部拉黑, gateway 加个逻辑判断就好了吧 。

直接把这个用户所有的 token 的全干掉。
BeautifulSoap
2023-10-12 12:41:14 +08:00
jwt 无状态,本质和互联网初期时,网站在 cookie 里塞用户 id 服务器靠 cookie 里记录的用户 id 来确认你是哪个用户没区别。只不过 jwt 更现代而且往往有效期非常短
想要在服务器端实现 jwt 无效化,最后搞到最后你会发现这就是 session
SuperXRay
2023-10-12 13:53:37 +08:00
不摄入食物的话怎么吃饱(不依赖注射营养物质)
dongdong12345
2023-10-12 17:11:31 +08:00
jwt 就是个字符串,不依赖 redis ,那只能用程序的内存来代替 redis 了,需要持久化的话得自己实现。
shea
2023-10-12 17:31:07 +08:00
可以做个拉黑功能, 在验证 jwt 前面加个中间件验证如果在 redis 里面存在的 token 就直接返回 401 就可以了

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

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

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

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

© 2021 V2EX