json web token 真的好用吗?

2018-11-12 13:37:51 +08:00
 dennissky

最近看到了 json web token 这个东西,发现其实它也是无状态的,不能主动的控制失效,如果我之前登录了,然后我去修改密码,我用之前的 jwt 访问接口不是还是可以通过校验吗?它真正的使用场景是什么样的啊?

2421 次点击
所在节点    问与答
5 条回复
agagega
2018-11-12 21:44:56 +08:00
不能撤销授权本来就是 JWT 的一大缺点,所以反过来它也有自解释而不依赖数据库的优点
zjp
2018-11-12 22:49:17 +08:00
我在用一个类似 JWT 的鉴权方式,实现密码修改和账号注销的功能时发现了这个问题……真的需要实时失效的话,把失效 JWT 存到缓存算一个烂方法,这样所有 JWT 都要查一次。其实就是数据放服务器还是客户端的问题。
dennissky
2018-11-13 10:11:01 +08:00
@zjp 其实感觉 jwt 还是有点鸡肋,可能是场景没有选择好,之前都是自定义一个 uuid 存到 redis,把这个 uuid 返给客户端
rim99
2018-11-13 19:51:06 +08:00
如果把它当 session 用,那就有很大的问题。只有在 api 对状态的及时性没有要求的时候,jwt 一部分功能和 session 重叠。

看过一篇文章,最好的场景是在电子流系统里,拿到上一节点的审批签名,然后在下一步带上 token 省的查库。
honeycomb
2018-11-13 21:12:17 +08:00
@zjp 主动失效还是有稍微优雅一些的办法,找一个 bloom filter,计算 /IO 压力就小很多了,而且绝对没有第一类错误

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

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

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

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

© 2021 V2EX