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