前端-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入门---制作进度条

下一篇:没有了

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...