From 41577db0cb94872940a5f498611334a3ba5ece8b Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 21 一月 2025 13:33:08 +0800 Subject: [PATCH] 1 --- ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 04e61a2..3acd5d2 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -9,6 +9,7 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.model.AppUser; import com.ruoyi.system.api.model.LoginUser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -116,6 +117,25 @@ return user; } + public AppUser getAppUser(String token) + { + AppUser user = null; + try + { + if (StringUtils.isNotEmpty(token)) + { + String userkey = JwtUtils.getUserKey(token); + user = redisService.getCacheObject(getTokenKey(userkey)); + return user; + } + } + catch (Exception e) + { + log.error("获取用户信息异常'{}'", e.getMessage()); + } + return user; + } + /** * 设置用户身份信息 */ @@ -154,6 +174,16 @@ } } + public void verifyToken(AppUser loginUser) + { + long expireTime = loginUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginUser); + } + } + /** * 刷新令牌有效期 * @@ -168,6 +198,15 @@ redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); } + public void refreshToken(AppUser appUser) + { + appUser.setLoginTime(System.currentTimeMillis()); + appUser.setExpireTime(appUser.getLoginTime() + expireTime * MILLIS_MINUTE); + // 根据uuid将loginUser缓存 + String userKey = getTokenKey(appUser.getToken()); + redisService.setCacheObject(userKey, appUser, expireTime, TimeUnit.MINUTES); + } + private String getTokenKey(String token) { return ACCESS_TOKEN + token; -- Gitblit v1.7.1