一、JWT简介:
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。是用于对应用程序上的用户进行身份验证的标记。也就是说,使用 JWT 的应用程序不再需要保存有关其用户的 cookie 或其他session数据。此特性便于可伸缩性,同时保证应用程序的安全。
在身份验证过程中, 当用户使用其凭据成功登录时, 将返回 JSON Web token,并且必须在本地保存 (通常在本地存储中)。
每当用户要访问受保护的资源时,需要在请求头中携带 JWT。后端服务器接收到带有 JWT 的请求时,首先要做的是验证token。
二、JWT格式
-
Token就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C
-
A由JWT头部信息header加密得到,有默认值,可以省略
-
B由JWT用到的身份验证信息json数据加密得到
-
C由A和B加密得到,是校验部分
三、流程
1.客户端 HTTP POST发送用户名、密码;
2. 服务器创建JWT token,并使用token作为键将用户信息存入redis服务器中
3. 将生成的token返回给用户
4.客户端: 发送受保护的API请求:在Authorization Header中携带token
5. 服务器: 检验JWT token是否合法,并通过token从redis中获取信息
6. 返回客户端请求的数据
三、在spring-boot中使用JWT
导入依赖
<dependency>