fix: token超时时间计算错误

This commit is contained in:
fit2cloud-chenyw 2022-01-14 15:19:31 +08:00
parent 7a61f375fa
commit 563d7bee95

View File

@ -17,16 +17,13 @@ import org.springframework.core.env.Environment;
import java.util.Date; import java.util.Date;
public class JWTUtils { public class JWTUtils {
// token过期时间1min (过期会自动刷新续命 目的是避免一直都是同一个token ) // token过期时间1min (过期会自动刷新续命 目的是避免一直都是同一个token )
private static final long EXPIRE_TIME = 1 * 60 * 1000; private static final long EXPIRE_TIME = 1 * 60 * 1000;
// 登录间隔时间10min 超过这个时间强制重新登录 // 登录间隔时间10min 超过这个时间强制重新登录
private static long Login_Interval; private static long Login_Interval;
/** /**
* 校验token是否正确 * 校验token是否正确
* *
@ -82,7 +79,8 @@ public class JWTUtils {
public static boolean loginExpire(String token) { public static boolean loginExpire(String token) {
if (Login_Interval == 0) { if (Login_Interval == 0) {
// 默认超时时间是8h // 默认超时时间是8h
int minute = CommonBeanFactory.getBean(Environment.class).getProperty("dataease.login_timeout", Integer.class, 8 * 60); Long minute = CommonBeanFactory.getBean(Environment.class).getProperty("dataease.login_timeout", Long.class,
8 * 60L);
// 分钟换算成毫秒 // 分钟换算成毫秒
Login_Interval = minute * 1000 * 60; Login_Interval = minute * 1000 * 60;
} }
@ -128,19 +126,19 @@ public class JWTUtils {
public static String signLink(String resourceId, Long userId, String secret) { public static String signLink(String resourceId, Long userId, String secret) {
Algorithm algorithm = Algorithm.HMAC256(secret); Algorithm algorithm = Algorithm.HMAC256(secret);
if(userId == null){ if (userId == null) {
return JWT.create().withClaim("resourceId", resourceId).sign(algorithm); return JWT.create().withClaim("resourceId", resourceId).sign(algorithm);
}else { } else {
return JWT.create().withClaim("resourceId", resourceId).withClaim("userId", userId).sign(algorithm); return JWT.create().withClaim("resourceId", resourceId).withClaim("userId", userId).sign(algorithm);
} }
} }
public static boolean verifyLink(String token, String resourceId, Long userId, String secret) { public static boolean verifyLink(String token, String resourceId, Long userId, String secret) {
Algorithm algorithm = Algorithm.HMAC256(secret); Algorithm algorithm = Algorithm.HMAC256(secret);
JWTVerifier verifier; JWTVerifier verifier;
if(userId == null){ if (userId == null) {
verifier = JWT.require(algorithm).withClaim("resourceId", resourceId).build(); verifier = JWT.require(algorithm).withClaim("resourceId", resourceId).build();
}else { } else {
verifier = JWT.require(algorithm).withClaim("resourceId", resourceId).withClaim("userId", userId).build(); verifier = JWT.require(algorithm).withClaim("resourceId", resourceId).withClaim("userId", userId).build();
} }