package com.mes.common.utils;
|
|
|
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.SignatureAlgorithm;
|
import lombok.Data;
|
|
import java.util.Date;
|
|
/**
|
* @Author : zhoush
|
* @Date: 2024/4/9 19:15
|
* @Description:
|
*/
|
@Data
|
public class JwtUtil {
|
|
private static final long expire = 60 * 60 * 1000L;
|
private static final String secret = "beibo";
|
private static final String header = "Authorization";
|
|
// 生成jwt
|
public static String generateToken(String username) {
|
|
Date nowDate = new Date();
|
Date expireDate = new Date(nowDate.getTime() + 1000 * expire);
|
|
return Jwts.builder()
|
.setHeaderParam("typ", "JWT")
|
.setSubject(username)
|
.setIssuedAt(nowDate)
|
.setExpiration(expireDate)// 7天過期
|
.signWith(SignatureAlgorithm.HS512, secret)
|
.compact();
|
}
|
|
// 解析jwt
|
public static Claims getClaimByToken(String jwt) {
|
try {
|
return Jwts.parser()
|
.setSigningKey(secret)
|
.parseClaimsJws(jwt)
|
.getBody();
|
} catch (Exception e) {
|
return null;
|
}
|
}
|
|
// jwt是否过期
|
public boolean isTokenExpired(Claims claims) {
|
return claims.getExpiration().before(new Date());
|
}
|
|
}
|