pc端过期时间改为30分钟。移动端过期时间改为72小时

feasure
xce 2026-01-08 19:14:31 +08:00
parent 135e569ea5
commit 6ae444c3c9
3 changed files with 27 additions and 6 deletions

View File

@ -103,8 +103,12 @@ token:
header: Authorization
# 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期默认30分钟
# 令牌有效期默认30分钟pc端默认分钟 移动端默认小时
pc:
expireTime: 30
mobile:
expireTime: 72
# MyBatis Plus配置
mybatis-plus:

View File

@ -1,11 +1,12 @@
package com.agri.common.utils.http;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.agri.common.utils.StringUtils;
import nl.basjes.parse.useragent.UserAgent;
import nl.basjes.parse.useragent.UserAgentAnalyzer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* UserAgent
*
@ -42,6 +43,7 @@ public class UserAgentUtils
.showMinimalVersion()
.withField(UserAgent.AGENT_NAME_VERSION)
.withField(UserAgent.OPERATING_SYSTEM_NAME_VERSION)
.withField(UserAgent.DEVICE_CLASS) // 是否为移动设备
.build();
/**
@ -251,4 +253,11 @@ public class UserAgentUtils
return extractMajorVersion(version);
}
}
public static String getDeviceType(String userAgent) {
UserAgent ua = userAgentAnalyzer.parse(userAgent);
return ua.getValue("DeviceClass");
}
}

View File

@ -43,8 +43,11 @@ public class TokenService
private String secret;
// 令牌有效期默认30分钟
@Value("${token.expireTime}")
private int expireTime;
@Value("${token.pc.expireTime}")
private int pc_expireTime;
@Value("${token.mobile.expireTime}")
private int mobile_expireTime;
protected static final long MILLIS_SECOND = 1000;
@ -149,6 +152,11 @@ public class TokenService
public void refreshToken(LoginUser loginUser)
{
loginUser.setLoginTime(System.currentTimeMillis());
String deviceType = UserAgentUtils.getDeviceType(ServletUtils.getRequest().getHeader("User-Agent"));
int expireTime = pc_expireTime;
if (StringUtils.isNotEmpty(deviceType) && deviceType.equals("Phone")) {
expireTime = mobile_expireTime * 60;
}
loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
// 根据uuid将loginUser缓存
String userKey = getTokenKey(loginUser.getToken());