一、引入依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
二、生成token
@Test
void contextLoads() {
Calendar instance = Calendar.getInstance();
instance.add(Calendar.SECOND,3600);
//生成令牌
String token = JWT.create()
//省略了Header,Header可以不写
.withClaim("userid",110) //Payload
.withClaim("username","chenshao") //Payload
.withExpiresAt(instance.getTime()) //设置过期时间
.sign(Algorithm.HMAC256("!asdqewqweqwdasx")); //加密算法,秘钥
System.out.println(token);
}
生成结果如下:
三、解析令牌数据
@Test
public void test () {
//创建验证对象
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("!asdqewqweqwdasx")).build(); //跟上面的秘钥一样
DecodedJWT verify = jwtVerifier.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTkzNDkwNTksInVzZXJpZCI6MTEwLCJ1c2VybmFtZSI6ImNoZW5zaGFvIn0.aIIONTgQHsnquGRpkrygtp3bHGj-HW0Ql7ZTwE-tQMI");
System.out.println(verify.getClaim("userid").asInt());
System.out.println(verify.getClaim("username").asString());
}
解析结果如下: