首先引入在Maven工程中的pom.xml文件中引入jjwt依赖。
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactI
<version>0.9.1</version>
</dependency>
创建工具类--这里使用硬编码格式:
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import java.util.Date;
import java.util.Map;
@Slf4j
public class JwtUtils {
private static String signKey = "签名密钥";
private static Long expire = 有效时间;
/**
* 生成jwt令牌
*/
public static String GenPaceJWT(Map<String, Object> claim){
String jwt = Jwts.builder() // 构建jwt令牌
.signWith(SignatureAlgorithm.HS256, signKey) // 设置数字签名的算法及密钥
.setClaims(claim) // 设置自定义的数据(载荷)
.setExpiration(new Date(System.currentTimeMillis() + expire)) // 设置令牌有效时间,new date表示当前时间,传递当前时间的毫秒值
.compact(); // 生成令牌
log.info("生成的jwt令牌是:{}",jwt);
return jwt;
}
/**
* 解析jwt令牌
*/
public static Claims ParseJWT(){
Claims claims = Jwts.parser() // 解析令牌
.setSigningKey(signKey) // 指定签名的密钥,要和生成是的保持一致
.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiVG9tIiwiaWQiOjEsImV4cCI6MTcwNjY3NzcwNX0.Gn7PDHE04v08WF8MQckU3C8hGa55bpsx0Ri1NjT1Tq0")
.getBody();
log.info("解析后的结果为:{}",claims);
return claims;
}
}