coolair
V2EX  ›  问与答

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

  •  
  •   coolair · Sep 22, 2020 · 2597 views
    This topic created in 2083 days ago, the information mentioned may be changed or developed.
    13 replies    2020-09-22 16:31:43 +08:00
    ddefewfewf
        1
    ddefewfewf  
       Sep 22, 2020
    留着也没用啊
    Molita
        2
    Molita  
       Sep 22, 2020
    不删留着干啥嘞

    就是 post session 和 delete session 嘛
    DavidNineRoc
        3
    DavidNineRoc  
       Sep 22, 2020   ❤️ 1
    jwt 好就好在不用存储数据库
    坏就坏在不用存储数据库

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