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

问一个 jwt 的强制下线问题

  •  
  •   neptuno · 2022-08-22 15:18:44 +08:00 · 924 次点击
    这是一个创建于 848 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果我在用户表存一个 key ,作为该用户 jwt 的 secret 。这样用户注销或重置密码,重新设置用户表的 key 。之前的 jwt 是不是就不能验证成功,是不是就实现了强制下线。(这个方案前提是数据库不能泄露)
    cheng6563
        1
    cheng6563  
       2022-08-22 15:20:18 +08:00
    那直接把 key 当做 token 岂不更秒?
    PerFectTime
        2
    PerFectTime  
       2022-08-22 15:20:20 +08:00
    那这样和 token 有啥区别,为什么要用 jwt
    neptuno
        3
    neptuno  
    OP
       2022-08-22 15:22:29 +08:00
    @cheng6563
    @PerFectTime 很有道理,我把自己绕进去了
    justfindu
        4
    justfindu  
       2022-08-22 15:22:35 +08:00
    你密钥都变了, 然后你怎么验证给过来的 payload 是真实有效的? 然后你无法验证是真实有效的, 你怎么能拿里面的 sub 来验证查询是哪一个对应的 key ? 是不是整个逻辑就不通了.
    johnli
        5
    johnli  
       2022-08-22 15:23:06 +08:00
    你这思路看起来也没问题
    neptuno
        6
    neptuno  
    OP
       2022-08-22 15:23:33 +08:00
    @justfindu 是的,没考虑这一点
    cozof
        7
    cozof  
       2022-08-22 18:59:05 +08:00 via iPhone
    加一个黑名单机制,把要下线的 jwt 加入黑名单。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.