首页 > 其他分享 >从session到jwt

从session到jwt

时间:2023-05-15 11:44:43浏览次数:41  
标签:存储 前端 jwt 令牌 sessionId session 客户端

  1. Session就是后端生成的一个唯一值,常用的就是后端生成一个guid返回给前端,这个guid被称为sessionId,大概的实现就是先验证登录信息,登录信息验证成功,后端生成sessonId,返回给前端,后端经sessionId存储到自己能读取的地方,之后,前后端交互就要校验sessionid,从这个层面上来说,sessionId就是一个通行证,并且通行证很有可能是带有效期的。
  2. 对于分布式集群环境,Session数据保存在服务器内存中显然是不对的,因为多个后端服务节点,是没用办法共享内容的,所以这时候,session数据应该放到一个中心状态服务器上,一般就是Redis、Memcached等
  3. 中心状态服务器在大规模系统中,其实也会有性能问题
基于以上对session的介绍和分析,在实际开发中,后续引入了JWT(JsonWebToke)的概念
  1. JWT把登录信息(也称作令牌)保存在客户端
  2. 为了让防止客户端的数据造假,保存在客户端的令牌经过了签名处理,而签名的密钥只有服务端才知道,每次服务端收到客户端提交的令牌的时候,都要检查一下签名
Session跟Jwt的区别在于,sessionId后端生成后,后端都需要存储,一般通过登录名(或用户id)作为key来存储sessionId,前端请求到后端,后端需要根据用户登录名(或用户id)作为key去读取相关sessionId,并验证其是否过期。 而JWT是后端生成,前端存储,后端无需存储,前端传递给后端之后,后端需要经过算法,才能知晓令牌是否合法,是否过期;这时令牌其实是密文令牌。 基于上边的介绍,我理解jwt是用计算资源换取了后端的存储资源,这样,不需要和中心状态服务器进行通讯,性能会更高;而且也不会再出现中心状态服务器的性能瓶颈问题,更容易平行拓展。由于签名技术保证了客户端无法数据造假,

标签:存储,前端,jwt,令牌,sessionId,session,客户端
From: https://www.cnblogs.com/pangzili/p/17401397.html

相关文章

  • KVM环境:Active console session exists for this domain
    做测试过程中被迫换电脑,但没有关掉原电脑的连接,所以用其他电脑连接测试环境时,发现之前的kvm测试环境因没有断开,无法连接:error:operationfailed:Activeconsolesessionexistsforthisdomain[root@bogon~]#virshconsoledb11gConnectedtodomaindb11gEscapecharact......
  • JWT令牌工具类
     importio.jsonwebtoken.Claims;importio.jsonwebtoken.Jwts;importio.jsonwebtoken.SignatureAlgorithm;importjava.util.Date;importjava.util.Map;publicclassJwtUtils{privatestaticStringsignKey="itheima";privatestaticLongexpir......
  • cookie和session、Django中间件
    cookie和session、Django中间件cookie和session简介http的五大特性:1.基于请求响应2.基于tcp和ip作用于应用层之上的协议3.无状态 服务端无法识别客户端的状态(互联网刚开始兴起的的时候所有人访问网址都是一样的数据,服务端记不住客户端的状态,服务端不得不想办法记住客......
  • vue项目中封装localStorage和sessionStorage
    1.为什么需要封装localStorage和sessionStorage?因为封装localStorage和sessionStorage可以提高程序的维护性、可重用性和扩展性,同时也可以使代码更为简单、易懂。2.以下是一个简单的代码封装示例可以新建一个utils目录文件,在该文件下新建storage.js文件进行封装//封装local......
  • F. Madoka and The First Session
    F.MadokaandTheFirstSession/*首先是对权值进行处理,把每次操作都看成一个减去2就可以了这样就只需要对大家都减去一个1,最后如果有奇数或者大于0,那就一定不可以然后就是见图,对边进行建图,代表这条边只能跑一次对si=1的直接建立边就可以了si=0的需要建立中转点,因为要限制......
  • cookie session token 发展史(便于理解jwt)
    目录一、cookiesessiontoken发展史(彻底理解cookie,session,token,便于理解jwt)1、Cookie,Session,Token发展史2、Cookie,Session解释2.1Cookie2.2Session2.3cookie和session的区别3、Token介绍3.1传统方式——基于服务器的验证3.2基于服务器验证方式的问题3.2.1Seesions3.2.2......
  • JWT相关知识点
    目录一、jwt介绍和原理概念构成与工作原理1.header2.payload3.signature本质原理jwt认证算法:签发与校验签发:根据登录请求提交来的账号+密码+设备信息签发token校验:根据客户端带token的请求反解出user对象drf项目的jwt认证开发流程(重点)补充base64编码解码drf-jwt安装和简......
  • AWS 中的另外一种远程工具 AWS Session Manager
    >作者:[SRE运维博客](https://www.cnsre.cn/)>博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)>文章地址:[https://www.cnsre.cn/posts/230129126154/](https://www.cnsre.cn/posts/230129126154/)>相关话题:[https://www.cnsre.cn/tags/aws/](https://www.cnsre.......
  • jwt工具类
    publicclassJwtUtils{publicstaticfinallongEXPIRE=1000*60*60*24;publicstaticfinalStringAPP_SECRET="ukc8BDbRigUDaY6pZFfWus2jZWLPHO";publicstaticStringgetJwtToken(Stringid,Stringnickname){StringJ......
  • Pytest - xdist 保证多进程共享 session 级别fixture
    背景:搜索自动化不同的测试文件件需要使用相同的变量解决:importloggingfromtoolsimportset_loggingimportpytestimporttimefromfilelockimportFileLockimportjsonimportosset_logging.set_test_log()@pytest.fixture(scope="session")defget_batch_i......