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

JWT 管理用户登录时,都需要把 token 存数据库里,判断用户登出时删除吗?

  •  
  •   coolair · 2020-09-22 15:47:20 +08:00 · 2072 次点击
    这是一个创建于 1519 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2020-09-22 16:31:43 +08:00
    ddefewfewf
        1
    ddefewfewf  
       2020-09-22 15:49:58 +08:00
    留着也没用啊
    Molita
        2
    Molita  
       2020-09-22 15:51:23 +08:00
    不删留着干啥嘞

    就是 post session 和 delete session 嘛
    DavidNineRoc
        3
    DavidNineRoc  
       2020-09-22 15:51:48 +08:00   ❤️ 1
    jwt 好就好在不用存储数据库
    坏就坏在不用存储数据库

    正常情况下 jwt 不用处理登出, 如果非要做. 参考黑名单的实现.
    ## 登出的做法就是, 客户端把本地的 token 删除, 这样子就不存在这个 token, 服务端也不关心这个. 就证明这个 token 没来过
    yamedie
        4
    yamedie  
       2020-09-22 15:51:50 +08:00
    服务端有主动吊销 token 需求时, 才这样做
    https://www.v2ex.com/t/590337
    coolair
        5
    coolair  
    OP
       2020-09-22 15:53:54 +08:00
    @DavidNineRoc 我也是这么想的,但是领导说这样不安全,真是尴尬。
    wysnylc
        6
    wysnylc  
       2020-09-22 15:54:20 +08:00
    @DavidNineRoc #3 对的,jwt 只做认证不做业务,导致无法直接指定 jwt 失效只能拉黑某个 jwt 或者拉黑用户
    如果有在线状态维护还是把 token 存 mongdb 或者 redis 吧
    Kr98
        7
    Kr98  
       2020-09-22 15:58:42 +08:00 via Android
    jwt 无状态,session 有状态。用 jwt 又要做成有状态,说明没想清楚到底想要什么。
    czzt1
        8
    czzt1  
       2020-09-22 16:14:45 +08:00
    你这么描述就说明你没理解 jwt 是啥,再去读读文档,想想 jwt 和传统 token 的区别
    DavidNineRoc
        9
    DavidNineRoc  
       2020-09-22 16:23:51 +08:00
    @coolair
    领导懂代码吗? 懂就按他的说
    不懂按你的来
    sytnishizuiai
        10
    sytnishizuiai  
       2020-09-22 16:26:56 +08:00
    我登录的 token 不存,登出存 redis+销毁时间。
    最近想解决,用户修改密码或者手机号,老的 token 失效的问题,不知道有什么有效的方法。
    limuyan44
        11
    limuyan44  
       2020-09-22 16:27:17 +08:00
    都拿 db 存了为啥用 jwt 呢有啥优势吗,不如我们使用 jwt 存一个叫 jsessionid 的东西,然后存 redis jessionid:userinfo,这样是不是显得厉害多了,你看不仅能踢用户还能控制过期时间。
    yimity
        12
    yimity  
       2020-09-22 16:28:26 +08:00
    jwt 只是一个认证方式, 完了生成一段字符串。
    你想怎么用就怎么用。
    当成 token 也行,当成 session 也行。
    所以不要局限自己。token 或者 session 不都是随机字符串么。
    baiyi
        13
    baiyi  
       2020-09-22 16:31:43 +08:00
    如果有服务端管理的需求,那就别用 JWT 了,session 就挺好的,有很多现成的解决方案
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.