JWT实战与原理
JWT实战和原理
一、cookie与session
1、服务器端向浏览器第一次写入cookie的时候,会额外写入名为JSESSIONID
后面每次请求都会带上此JSESSIONID,这就是sessionid, 服务器端会根据sessionid获取到对应的session,从session获取到值,根据值来判定是否是相同用户。
一个JSESSIONID 就代表一个用户

二、为什么需要JWT
cookie和session的缺点
- session都存储再服务端内存 堆内存 量大引起质变
- 集群环境中需要额外处理
- user->a1,a2,a3
- 解决方法:ip_hash,分布式session
- csrf:Cross-site reqest forgery, cookie被截获后发生跨站点请求伪造
- cookie的跨域(前后端分离)读写不方便
JWT有点:
解决了上面cookie和session的缺点,主要应用在前后端分离的场景,当然你用在单体应用里面也是没有问题的。
三、JWT的实现方式
jwt:json web token
3.1 java-jwt
Header.Payload.Signature
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.11.0</version>
</dependency>
token:令牌,字符串
3.2 jjwt
<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-api -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.3</version>
</dependency>
四、前后端交互
4.1 后端工具类
4.2 后端返回token
4.3 前端存储token
spa(single page application: sessionStorge) vue
localStorage
4.4 前端传递的方式
前端存储token后,干嘛呢? 之后每次请求都携带这个token,用于让服务端校验。
- Authorization:授权
- 请求参数里面,参数名字无所谓,一般的都叫做token。
两者都可以选择使用,任取其一即可。
4.5 后端接收与校验
五、jwt原理
5.1 jwt的组成
5.2 手写jwt算法
其他相关资料
idea快捷键
https://blog.csdn.net/wyouwd1/article/details/125705477
https://blog.csdn.net/chiyunhouse/article/details/117460749
Java Web Token 之 JJWT 使用
https://blog.csdn.net/weixin_41540822/article/details/88781964
https://blog.csdn.net/weixin_45070175/article/details/118559272
beforeSend
https://blog.csdn.net/qq_45024637/article/details/92011586
https://www.likecs.com/show-204298938.html
https://www.likecs.com/show-203359555.html
https://www.sojson.com/MyEclipes-2.html
https://developer.aliyun.com/mvn/guide
https://mvnrepository.com/
maven和jdk版本对应关系


浙公网安备 33010602011771号