前端-session、jwt
创始人
2025-06-01 22:54:58
0

目录:

 

(1)session

(2)jwt校检流程

(3)jwt签名原理

(4)css


(1)session

 

 

发送一个请求:

获取数据请求,没有携带sessionid:

 携带sessionid:

(2)jwt校检流程

session做用户登录验证

http请求时无状态的,需要发送多次请求,我们不希望每次请求都携带用户名和密码,我们只希望用户名和密码只验证一次,验证成功之后呢,我们把它登录成功的状态记录下来,在后续的请求里看看它有没有登录成功的标记,如果有我们就放行,让它让问受限的资源,没有的话再重新去验证用户名和密码

 用session实现登录的验证,对单体项目是合适的,当时你开发的是分布是的项目,那么session技术就有点不合适了,采而采用jwt来进行登录的验证:

 

发送请求,生成toncken: 

 校验toncken:

 (3)jwt签名原理

 从以上程式可以发现,在Java用Base64一点都不难,不用几行程式码就解决了!只是这个sun.mis c套件所提供的Base64功能,编码和解码的效率并不太好,而且在以后的Java版本可能就不被支援了,完全不建议使用。

 

以上的程式码看起来又比早期用sun.mis c套件还要更精简,效能实际执行起来也快了不少。缺点是需要引用Apache Commons Codec,很麻烦

 与sun.mis c套件和Apache Commons Codec所提供的Base64编解码器来比较的话,Java 8提供的Base64拥有更好的效能。实际测试编码与解码速度的话,Java 8提供的Base64,要比sun.mis c套件提供的还要快至少11倍,比Apache Commons Codec提供的还要快至少3倍。因此在Java上若要使用Base64,这个Java 8底下的java .util套件所提供的Base64类别绝对是首选!

 

tocken前面header和数据用了Base64进行了编码,我们在解码查看一下: 

 tocken具有安全性,是因为签名可以保证tocken数据不被篡改

当客户端继续把toncken发送给服务器的时候,能不能把tocken内容做一下修改,来欺骗服务器,

比如说zhang这个名字用户,只能做有限的操作,那么有admin这个用户,权限较大,能不能把tocken中内容这一部分做一下修改,来欺骗服务器呢?

发送请求的时候进行替换:

 

 

 

服务器校验失败:

 签名是根据前两部分和一个秘钥生成的签名,前面两部分是知道的但是秘钥我们是不知道的

校验的时候会根据内容的签名值,和它预先生成的签名值不一致就说明内容发生了篡改

(4)css

 

 

 

 

 

 

 

display属性:

 

 

template标签(模板标签):一开始并能没有在页面显示,他要结合js代码,js可以读到模板这段代码,动态的加到div标签中

 点击按钮:把form表单动态的加到out的div内

 

 

 

 

 

上一篇:linux入门---制作进度条

下一篇:没有了

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...