dennissky
V2EX  ›  问与答

json web token 真的好用吗?

  •  
  •   dennissky · Nov 12, 2018 · 3147 views
    This topic created in 2739 days ago, the information mentioned may be changed or developed.

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

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

    看过一篇文章,最好的场景是在电子流系统里,拿到上一节点的审批签名,然后在下一步带上 token 省的查库。
    honeycomb
        5
    honeycomb  
       Nov 13, 2018 via Android
    @zjp 主动失效还是有稍微优雅一些的办法,找一个 bloom filter,计算 /IO 压力就小很多了,而且绝对没有第一类错误
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5613 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.