首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bsg1992
V2EX  ›  程序员

授权验证选择 jwt 还是 session

  •  
  •   bsg1992 · 90 天前 · 1080 次点击
    这是一个创建于 90 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家开发一般在授权认证上使用为什么方案 1.jwt 优点是无状态,缺点 服务端不可控例如强制登出 2.session 优点 可控服务端为得维护状态,缺点 服务端有额外开销,分布式涉及到同步问题

    7 回复  |  直到 2019-10-23 18:02:53 +08:00
    workspace
        1
    workspace   90 天前
    分布式涉及到同步问题,使用 redis 需要考虑吗
    luckyrayyy
        2
    luckyrayyy   90 天前
    都说 jwt 适合单次或短时校验。
    另外 jwt 有点问题就是服务端不能主动控制登出,另外安全问题也得考虑。
    workspace
        3
    workspace   90 天前
    只用过 session 觉得挺好哈哈 不同场景不同使用吧
    racecoder00
        4
    racecoder00   90 天前
    就是鉴权选择分布式还是集中的吧
    tabris17
        5
    tabris17   90 天前
    JWT 过期时间设短一点,对于实时性要求不高的应用足够了。
    passerbytiny
        6
    passerbytiny   90 天前
    两者可以同时用的——JWT 外加用户状态用于首次登录,session 用于跟踪。当然 session 要基于 redis、文件或其它独立存储做定制,并且此时 JWT 仅相当于 cookie。
    abcbuzhiming
        7
    abcbuzhiming   90 天前   ♥ 1
    * jwt 只适合短期认证
    * jwt 是把状态保持从服务器移动到了客户端
    * 只要你不得不在服务端保存状态(比如你说的服务器可控强制踢出),那么 jwt 就不在合适,jwt 付出了传输内容膨胀的代价,就为了让服务器不保存状态,所以一切需要在服务器保存状态的需求,都不适合 jwt
    * session 你也可以不用,你完全可以自定义一种比 jwt 简单的多的 token,然后把 token 的保存后移到缓存层,这样你的 http 接入层仍然是无状态的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2325 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    ♥ Do have faith in what you're doing.