@Getter
@Setter
@ConfigurationProperties("jwt.config")
public class JwtUtil {
//签名私钥
private String key;
//签名的失效时间
private long ttl;
/**
* id:用户登录的id
* subject:用户登录名
*/
public String createJWT(String id, String subject, Map<String, Object> map) {
//1.设置失效时间
//2.创建jwtBuilder
//3.根据map设置claim
//4.创建token
long now = System.currentTimeMillis();
long exp = now + ttl;
JwtBuilder jwtBuilder = Jwts.builder().setId(id)
.setSubject(subject).setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256, key);
for (Map.Entry<String, Object> entry : map.entrySet()) {
jwtBuilder.claim(entry.getKey(), entry.getValue());
}
jwtBuilder.setExpiration(new Date(exp));
String token = jwtBuilder.compact();
return token;
}
/**
String token = jwtBuilder.compact(); return token;
*解析JWT
*@param token
*@return
*/
public Claims parseJWT (String token){
Claims claims = null;
try {
claims = Jwts.parser()
.setSigningKey(key)
.parseClaimsJws(token).getBody();
} catch (Exception e) {
}
return claims;
}
}
jwt工具类
最新推荐文章于 2023-11-06 11:01:39 发布