package com.ltkj.framework.config;
|
|
import com.ltkj.common.utils.StringUtils;
|
import io.jsonwebtoken.*;
|
|
import java.util.Date;
|
import java.util.Map;
|
|
/**
|
* @Author: 西安路泰科技有限公司/赵佳豪
|
* @Date: 2022/11/17 9:48
|
* 生成token工具类
|
*/
|
|
|
public class JwtUtils {
|
|
//秘钥
|
private static final String TOOKRN_SECRET = "ltkj";
|
|
//过期时间
|
private static final long TOKEN_TIME_OUT = 1000 * 60 * 60 * 24 * 7;
|
|
//生成token
|
public static String getToken(Map params) {
|
long currentTimeMillis = System.currentTimeMillis();
|
|
return Jwts.builder()
|
.signWith(SignatureAlgorithm.HS512, TOOKRN_SECRET)//加密方式
|
.setExpiration(new Date(currentTimeMillis + TOKEN_TIME_OUT))//过期时间
|
.addClaims(params)
|
.compact();
|
}
|
|
//获取token信息
|
public static Claims getClaims(String token) {
|
return Jwts.parser()
|
.setSigningKey(TOOKRN_SECRET)
|
.parseClaimsJws(token).getBody();
|
}
|
|
//判断token是否有效
|
public static boolean verifyToken(String token) {
|
if (StringUtils.isEmpty(token)) {
|
return false;
|
}
|
try {
|
Claims claims = Jwts.parser().setSigningKey("ltkj").parseClaimsJws(token)
|
.getBody();
|
} catch (ExpiredJwtException e) {
|
return false;
|
}
|
return true;
|
}
|
|
}
|