From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 20:56:27 +0800
Subject: [PATCH] bug修改

---
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java |   62 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 10 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 0351a6b..fa89da8 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
@@ -1,15 +1,7 @@
 package com.ruoyi.common.security.service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-
-import com.ruoyi.common.core.constant.Constants;
-import com.ruoyi.system.api.domain.AppMiniLoginVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.utils.JwtUtils;
 import com.ruoyi.common.core.utils.ServletUtils;
@@ -18,7 +10,14 @@
 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.domain.AppMiniLoginVO;
 import com.ruoyi.system.api.model.LoginUser;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.http.HttpServletRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * token验证处理
@@ -39,6 +38,8 @@
     private final static long EXPIRE_TIME = CacheConstants.EXPIRATION;
 
     private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
+
+    private final static String USER_TOKEN_KEY = CacheConstants.USER_TOKEN_KEY;
 
     private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
 
@@ -64,8 +65,12 @@
 
         // 接口返回信息
         Map<String, Object> rspMap = new HashMap<String, Object>();
-        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+        String accessToken = JwtUtils.createToken(claimsMap);
+        rspMap.put("access_token", accessToken);
         rspMap.put("expires_in", EXPIRE_TIME);
+        String userTokenKey = getUserTokenKey(loginUser.getUserid());
+        redisService.setCacheObject(userTokenKey, accessToken, EXPIRE_TIME,
+                TimeUnit.MINUTES);
         return rspMap;
     }
 
@@ -99,6 +104,38 @@
         rspMap.put("wx_unionid", appMiniLoginVo.getWxUnionid());
         rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
         rspMap.put("zfb_userid", appMiniLoginVo.getZfbuserid());
+        rspMap.put("phone",appMiniLoginVo.getPhone());
+        rspMap.put("memberid",appMiniLoginVo.getMemberid().toString());
+        return rspMap;
+    }
+
+    public Map<String, Object> createMiniToken1(AppMiniLoginVO appMiniLoginVo)
+    {
+        LoginUser loginUser = new LoginUser();
+        // Jwt存储信息
+        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        // 接口返回信息
+        Map<String, Object> rspMap = new HashMap<String, Object>();
+        //用户为空只返回openid
+        rspMap.put("mobile","");
+        rspMap.put("access_token", "");
+        if(appMiniLoginVo.getSysUser()!=null){
+            loginUser.setSysUser(appMiniLoginVo.getSysUser());
+            String token = IdUtils.fastUUID();
+            Long userId = loginUser.getSysUser().getUserId();
+            String userName = loginUser.getSysUser().getUserName();
+            loginUser.setToken(token);
+            loginUser.setUserid(userId);
+            loginUser.setUsername(userName);
+            loginUser.setIpaddr(IpUtils.getIpAddr());
+            refreshToken(loginUser);
+            claimsMap.put(SecurityConstants.USER_KEY, token);
+            claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+            claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+            claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_MINI_APP);
+            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+            rspMap.put("expires_in", EXPIRE_TIME);
+        }
         rspMap.put("phone",appMiniLoginVo.getPhone());
         return rspMap;
     }
@@ -168,6 +205,7 @@
         {
             String userkey = JwtUtils.getUserKey(token);
             redisService.deleteObject(getTokenKey(userkey));
+            redisService.deleteObject(getUserTokenKey(Long.valueOf(JwtUtils.getUserId(token))));
         }
     }
 
@@ -204,4 +242,8 @@
     {
         return ACCESS_TOKEN + token;
     }
+
+    private String getUserTokenKey(Long userId) {
+        return USER_TOKEN_KEY + userId;
+    }
 }
\ No newline at end of file

--
Gitblit v1.7.1