pom.xml依赖
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.6.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
JWT工具类加密解密
package com.gm.utiles;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JWTUtiles {
//加密
public static String getJwt(String id,String subject,Long trime){
long l = System.currentTimeMillis();
Date date = new Date(l);//当前系统时间
if (null == trime){
trime = 1000*60*60L;//有效时间一小时
}
JwtBuilder jwtBuilder = Jwts.builder()
.setId(id)
.setSubject(subject)
.setIssuedAt(date)
.setExpiration(new Date(l + trime))
.signWith(SignatureAlgorithm.HS256, "diandiande");
String compact = jwtBuilder.compact();
return compact;
}
//验证
public static Claims parseJWT(String token){
Claims body = Jwts.parser()
.setSigningKey("diandiande")
.parseClaimsJws(token)
.getBody();
System.out.println(body.getSubject());
return body;
}
}
加密和解密的测试
@Test
public void jwttest(){
String token = JWTUtiles.getJwt("12", "点点", null);
System.out.println(token);
}
@Test
public void parser(){
String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMiIsInN1YiI6IuaAneWuhyIsImlhdCI6MTYzMDYzNjY4NCwiZXhwIjoxNjMwNjQwMjg0fQ.B7plrreMZRnnHfdHbFMgVhkzmIedny7rSQfpr6pfIVo";
Claims claims = JWTUtiles.parseJWT(token);
System.out.println("id=====>"+claims.getId());
System.out.println("subject======>"+claims.getSubject());
}