zoukankan      html  css  js  c++  java
  • JWT--无状态单点登录

    序言

    传统的 seesion 认证存在的问题:

    1)用户信息存储在内存中,用户规模大之后增加服务器开销;
    2)由于登录信息存储在内存中,限制了登录机器,不利于分布式站点。

    JWT

    JWT无状态登录

    常规的 JWT 认证流程如下如:

    刷新Token

    单顶级域名下的单点登录

    多顶级域名下的单点登录

    基于 cookie 的单点登录模式有一个弊病在于,其对应的多个站点的顶级域名必须相同。

    JWT小结

    JWT的缺陷

    JWT使用起来虽然简单方便,但它存在一个设计缺陷,即服务端无法主动注销token,所以jwt在安全性上不及session,实际开发中应谨慎使用。

    如果要让服务端能够注销token,就要在服务端维持token状态,这又回到session机制了,所以在经常需要验证的场景中,建议还是使用session。

    JWT这个缺陷决定了它更适合用在一次性token验证场景中,即token只使用一次就立即废弃掉,比如第三方登录授权。

    适合使用jwt的场景

    有效期短,只希望被使用一次,比如,验证码,用户注册后发一封邮件让其激活账户,通常邮件中需要有一个链接,这个链接需要具备以下的特性:能够标识用户,该链接具有时效性(通常只允许几小时之内激活),不能被篡改以激活其他可能的账户,一次性的。这种场景就适合使用jwt。

    而由于jwt具有一次性的特性。单点登录和会话管理非常不适合用jwt,如果在服务端部署额外的逻辑存储jwt的状态,那还不如使用session。基于session有很多成熟的框架可以开箱即用,但是用jwt还要自己实现逻辑。

    资料

    八幅漫画理解使用JSON Web Token设计单点登录系统

    基于 JWT 的单点登录设计 xuxiangwork

  • 相关阅读:
    hadoop yarn
    java 删除文件夹及其里面的文件
    scrapy 429 处理
    java 获取当前时间(年月日时分秒)
    Java测试类
    eclipse环境问题-java版本不兼容
    Java内功修炼系列一工厂模式
    Java内功修炼系列一观察者模式
    Java内功修炼系列一责任链模式
    Java内功修炼系列一拦截器
  • 原文地址:https://www.cnblogs.com/cnki/p/10762024.html
Copyright © 2011-2022 走看看