import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.Map;
public class JwtUtils {
private static String signKey = "muyan";//key
private static long expire = 1000 * 60 * 60 * 24; //一天
/***
* 生成JWT令牌
* @param data 要存储的数据 String字符串,可以是JSON数据
* @return
*/
public static String generateJwt(String data){
String jwt = Jwts.builder()
.setSubject(data)
.signWith(SignatureAlgorithm.HS256, signKey)
.setExpiration(new Date(System.currentTimeMillis() + expire))
.compact();
return jwt;
}
/***
* 生成JWT令牌Map
* @param claims 要存储的数据 Map集合
* @return
*/
public static String generateJwtMap(Map<String, Object> claims){
String jwt = Jwts.builder()
.addClaims(claims)
.signWith(SignatureAlgorithm.HS256, signKey)
.setExpiration(new Date(System.currentTimeMillis() + expire))
.compact();
return jwt;
}
/**
* 解析JWT令牌
* @param jwt JWT令牌
* @return
*/
public static Claims parseJWT(String jwt){
Claims claims = Jwts.parser()
.setSigningKey(signKey)
.parseClaimsJws(jwt)
.getBody();
return claims;
}
}
spring boot JWT令牌工具类
最新推荐文章于 2025-07-03 15:11:23 发布
本文介绍了如何使用Java编写一个JwtUtils类,包括生成JWT令牌(存储数据和设置过期时间),以及解析JWT令牌的方法,主要涉及HS256签名算法和使用密钥signKey进行加密。
1262





