本篇将带你快速了解与登录校验相关的技术,如JWT令牌,Filter过滤器,Interceptor拦截器等。
一、JWT令牌
1、概述
JWT(JSON Web Token) ,官网:https://jwt.io/
定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。
组成:
1)第一部分:
Header(头),记录令牌类型、签名算法等。例如: {"alg":"HS256" "type":"JWT"}
2)第二部分
Payload(有效载荷),携带一些自定义信息、默认信息等。例如: {"id":"1","username":"Tom"}
3)第三部分
Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来。
2、生成JWT
1)引入JWT依赖
在pom.xml文件中添加如下依赖
<!-- JWT令牌依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
2)在 springboot整合单元测试的类中,编写测试方法进行测试。
注:在测试时可以将 @SpringBootTest注解注释掉,加快加载速度。
// 生成JWT令牌
@Test
public void testGenJWT(){
Map<String, Object> claims = new HashMap<>();
claims.put("id",1); // 往map集合里面添加数据
claims.pu