JWT的使用
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。
一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。
创建模块
引入pom依赖
在这里插入代码片
<dependencies>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
</dependencies>
简单使用
在这里插入代码片
public class JWTTest {
public static void main(String[] args) {
long currentTimeMillis = System.currentTimeMillis();
Date date = new Date(currentTimeMillis+5000);
// 生成jwt令牌
JwtBuilder jwtBuilder = Jwts.builder().setId("666") //设置唯一编号
.setSubject("叶仙人") //设置主题 可以是JSON数据
.setIssuedAt(new Date()) //设置签发日期
.setExpiration(date) //用于设置过期时间 ,参数为Date类型数据
.claim("roles","admin") //设置角色 自定义claims
.signWith(SignatureAlgorithm.HS256, "itywh");//设置签名 使用HS256算法,并设置SecretKey(字符串)
//构建 并返回一个字符串,每次运行结果不一样
String jwtToken = jwtBuilder.compact();
System.out.println(jwtToken);
//解析token
Claims claims = Jwts.parser().setSigningKey("itywh").parseClaimsJws(jwtToken).getBody();
System.out.println(claims); //{jti=666, sub=叶仙人, iat=1602156088, exp=1602156093, roles=admin}
}
}