现在 session 是主流还是 jwt + refresh token 是主流? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zhouhuab
V2EX    程序员

现在 session 是主流还是 jwt + refresh token 是主流?

  •  
  •   zhouhuab 2 天前 3195 次点击

    徘徊了好几年,看了好多文章,也问了 chatgpt ,现在想看看生产中用到都是啥?

    33 条回复    2026-04-06 14:16:24 +08:00
    crysislinux
        1
    crysislinux  
       2 天前 via Android
    中大厂肯定是后端 session
    w568w
        2
    w568w  
       2 天前
    我没搞懂这两种方案有什么区别吗? jwt + refresh token 不只是 session 的一种实现方式么。
    gitrebase
        3
    gitrebase  
       2 天前
    refresh token 感觉更多用在开放平台 API 的认证/授权上,如果只是正常的用户登录流程,就用 session 就好,但感觉两者之间也没什么技术复杂度的差别,熟悉哪个用哪个就好
    bwijn
        4
    bwijn  
       2 天前
    claude 是主流
    blushyes
        5
    blushyes  
       2 天前
    @w568w 一个是有状态一个是无状态。
    diudiuu
        6
    diudiuu  
       2 天前
    自己控制上 两个结合
    yungo8
        7
    yungo8  
       2 天前 via Android   1
    这种最佳实践的只能大佬们回答了,说实话,有多少人是做过手机中那些常用 pp 保持登录状态,最多也就是对接登录点一下。本人搞的登录,不好意思,就一个 token 走天下,没有 refresh token ,过期了麻烦用户再登录
    way2explore2
        8
    way2explore2  
       2 天前
    看需求了,APP 多 JWT + Fresh
    Web 多用 Session
    craftsmanship
        9
    craftsmanship  
       2 天前 via Android
    @yungo8 保持登录状态这个 我觉得可以请 @Livid 来讲一下 V 站的设计作为参考
    w568w
        10
    w568w  
       2 天前
    @blushyes 我理解现在很多 JWT 的实践其实是综合的,JWT 本身不会携带全部状态信息(可能只有个 id ),实际的鉴权和状态提取还是在服务端完成的。

    毕竟无状态就不可 revoke ,这个风险太大了
    liuxu
        11
    liuxu  
       2 天前
    oauth2
    onedge
        12
    onedge  
       2 天前
    @yungo8 简单粗暴
    onedge
        13
    onedge  
       2 天前
    @way2explore2 web 现在也是 jwt+refresh
    poly1911
        14
    poly1911  
       2 天前
    jwt
    jadeborner
        15
    jadeborner/strong>  
       2 天前 via Android
    当然是 session,我经常把 cookie 导出到另一台机器用,省得再登陆一次
    streamrx
        16
    streamrx  
       2 天前 via iPhone
    单个客户端种类就 session
    imnpc
        17
    imnpc  
       2 天前
    前后端分离 JWT+ token 不分离 session
    fovecifer
        18
    fovecifer  
       2 天前
    我觉得你把概念搞混了,我觉得应该是中心化的管理方案和去中心化的管理方案
    leegradyllljjjj
        19
    leegradyllljjjj  
       2 天前
    两种都用了是什么水平
    Rache1
        20
    Rache1  
       2 天前
    看过这么多任务机器人、代挂脚本之类的东西,就能看出来,第一方的话大厂们都还在用 Cookie 那一套,如无必要,勿增实体
    Bingchunmoli
        21
    Bingchunmoli  
       2 天前
    混合 jwt+session 算什么, 还有看见很多大肠的 token 不是标准的 jwt 是用了自己私有算法还是什么 其他的,jwt 确实太长了
    ZeroDu
        22
    ZeroDu  
       2 天前
    用最简单的方案,生成的 uuid 然后存到 redis
    netnr
        23
    netnr  
       2 天前
    同时支持 Cookie 和 JWT
    zed1018
        24
    zed1018  
       2 天前
    @w568w #10 JWT 设计思路本身也是不支持 revoke ,要 revoke 就得加黑名单,然后分布式服务各自要集中查询黑名单,那还不如一开始就不要用 JWT 。所以一般我理解的用 JWT 就不考虑 revoke ,而是把单个 token 时间给的足够短,然后 revoke refresh token 。
    Oktfolio
        25
    Oktfolio  
       2 天前
    大厂都还是 cookie + 随机字符串( sessionid )
    giter
        26
    giter  
       2 天前
    @Oktfolio 这么多年前就开发了的产品,使用 Cookie 或 Session 都正常。后面开发的项目基本都是双 Token 机制
    BadAngel
        27
    BadAngel  
       1 天前
    今后不应该是 阅后即焚 吗
    way2explore2
        28
    way2explore2  
       1 天前
    @zed1018 正解,
    sunwangme
        29
    sunwangme  
       1 天前
    我自己现在更偏向按场景分,不会把 jwt + refresh token 当默认答案。

    如果是传统 Web 、内部系统、或者 BFF 比较重的场景,我通常还是 session / cookie + 服务端 session id 。原因很简单:可控,能随时 revoke ,权限变更、强退、风控这些处理起来都顺手。

    如果是多端客户端、开放 API 、跨域比较多,才更容易上 access token + refresh token 。但我实际落地时也很少做成“纯无状态 jwt”,最后还是会在服务端保留一层会话或版本校验,不然撤销登录和风控会很别扭。

    所以我理解现在不是谁成了绝对主流,而是:
    Web / 第一方业务:session 依然很常见
    多端 / 开放场景:token 双令牌更多
    生产里更常见的其实是混合用,优先选自己最容易控风险的方案。
    yungo8
        30
    yungo8  
       1 天前   1
    @craftsmanship 主张的网页端我没看出来。但是给第三方 app 提供的接口,手动创建的 oken 是固定 180 天有效期的,具体见文档 help/personal-access-token
    v2Geeker
        31
    v2Geeker  
       1 天前
    OIDC
    uni
        32
    uni  
       1 天前
    3 楼正解,api 用 jwt ,用户登录流程用 session 。我现在做的小程序,给小程序用的 api 用 jwt ,小程序的 web 后台用的 session
    c3de3f21
        33
    c3de3f21  
       8 小时 17 分钟前
    真的有无状态应用吗,但凡上个 redis 都不算无状态吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2864 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 14:33 PVG 22:33 LAX 07:33 JFK 10:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86