V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dennissky
V2EX  ›  问与答

json web token 真的好用吗?

  •  
  •   dennissky · 2018-11-12 13:37:51 +08:00 · 2471 次点击
    这是一个创建于 2229 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    看过一篇文章,最好的场景是在电子流系统里,拿到上一节点的审批签名,然后在下一步带上 token 省的查库。
    honeycomb
        5
    honeycomb  
       2018-11-13 21:12:17 +08:00 via Android
    @zjp 主动失效还是有稍微优雅一些的办法,找一个 bloom filter,计算 /IO 压力就小很多了,而且绝对没有第一类错误
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3356 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.