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