修改小程序token模块——token有效期为2小时,refresh的token有效期为7天

This commit is contained in:
sh
2026-05-06 13:07:38 +08:00
parent d0ba77ae92
commit 5744eaa27e
2 changed files with 31 additions and 2 deletions

View File

@@ -174,7 +174,7 @@ public class SysLoginService
AsyncManager.me().execute(AsyncFactory.recordLogininfor(appUser.getName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
recordLoginInfo(appUser);
// 生成token //tokenSiteService.noExpireCreateToken(loginSiteUser);
return tokenSiteService.createToken(loginSiteUser);
return tokenSiteService.createTokenHourTwo(loginSiteUser);
}
//单点登录

View File

@@ -45,6 +45,12 @@ public class TokenSiteService
@Value("${token.expireTime}")
private int expireTime;
//token过期时间为2小时
protected static final int TOKEN_TIME_OUTIME =120;//超时120
//刷新token时间为7天
protected static final int REFRESH_TOKEN_OUTIME =7;
protected static final long MILLIS_SECOND = 1000;
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
@@ -130,6 +136,29 @@ public class TokenSiteService
return createToken(claims);
}
/**
* 超时时间为2个小时
* @param LoginSiteUser
* @return
*/
public String createTokenHourTwo(LoginSiteUser LoginSiteUser)
{
String token = IdUtils.fastUUID();
LoginSiteUser.setToken(token);
setUserAgent(LoginSiteUser);
refreshToken(LoginSiteUser);
Map<String, Object> claims = new HashMap<>();
claims.put(Constants.APP_LOGIN_USER_KEY, token);
claims.put(Constants.APP_LOGIN_USER_ID, LoginSiteUser.getUserId());
// 当前时间 + 120 分钟
long currentTimeMillis = System.currentTimeMillis();
long expireTimeMillis = currentTimeMillis + ((long) TOKEN_TIME_OUTIME * 60 * 1000); // 12分钟 = 1800000 毫秒
long expireTimeSeconds = expireTimeMillis / 1000; // 转换为秒(时间戳)
claims.put(Constants.EXP, expireTimeSeconds);
return createToken(claims);
}
/**
* 设置不过期token
* @param LoginSiteUser
@@ -174,7 +203,7 @@ public class TokenSiteService
LoginSiteUser.setExpireTime(LoginSiteUser.getLoginTime() + expireTime * MILLIS_MINUTE);
// 根据uuid将LoginSiteUser缓存
String userKey = getTokenKey(LoginSiteUser.getToken(), String.valueOf(LoginSiteUser.getUserId()));
//redisCache.setCacheObject(userKey, LoginSiteUser, expireTime, TimeUnit.MINUTES);
redisCache.setCacheObject(userKey, LoginSiteUser, REFRESH_TOKEN_OUTIME, TimeUnit.DAYS);
redisCache.setCacheObject(userKey, LoginSiteUser);
}