From 07fb617c686699435cde29e8147f11a125d7d618 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期一, 23 六月 2025 11:10:12 +0800
Subject: [PATCH] bug修改
---
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 95 +++++++++++++++++++++++++++++++++++------------
1 files changed, 71 insertions(+), 24 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 4f24165..fc63adc 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,14 +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.system.api.model.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;
@@ -17,11 +10,21 @@
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.AppMiniLoginVo;
import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.OauthUserVo;
+import com.ruoyi.system.api.model.QwH5LoginVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* token验证处理
- *
+ *
* @author jqs
*/
@Component
@@ -34,7 +37,7 @@
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
- private final static long expireTime = CacheConstants.EXPIRATION;
+ private final static long EXPIRE_TIME = CacheConstants.EXPIRATION;
private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
@@ -55,15 +58,15 @@
refreshToken(loginUser);
// Jwt存储信息
- Map<String, Object> claimsMap = new HashMap<String, Object>();
+ Map<String, Object> claimsMap = new HashMap<>();
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_STAFF);
// 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap));
- rspMap.put("expires_in", expireTime);
+ rspMap.put("expires_in", EXPIRE_TIME);
return rspMap;
}
@@ -73,7 +76,47 @@
public Map<String, Object> createMiniToken(AppMiniLoginVo appMiniLoginVo)
{
LoginUser loginUser = new LoginUser();
- loginUser.setSysUser(appMiniLoginVo.getSysUser());
+ // 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);
+ if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){
+ rspMap.put("mobile",appMiniLoginVo.getMobile() );
+ }else{
+ rspMap.put("mobile","");
+ }
+ rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+ rspMap.put("expires_in", EXPIRE_TIME);
+ }
+ rspMap.put("wx_unionid", appMiniLoginVo.getWxUnionid());
+ rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
+ return rspMap;
+ }
+
+ /**
+ * 创建企业微信令牌
+ */
+ public OauthUserVo createQwH5Token(QwH5LoginVo qwH5LoginVo)
+ {
+ LoginUser loginUser = new LoginUser();
+ loginUser.setSysUser(qwH5LoginVo.getSysUser());
String token = IdUtils.fastUUID();
Long userId = loginUser.getSysUser().getUserId();
String userName = loginUser.getSysUser().getUserName();
@@ -82,19 +125,23 @@
loginUser.setUsername(userName);
loginUser.setIpaddr(IpUtils.getIpAddr());
refreshToken(loginUser);
-
+
// Jwt存储信息
Map<String, Object> claimsMap = new HashMap<String, Object>();
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_SHOP);
// 接口返回信息
- Map<String, Object> rspMap = new HashMap<String, Object>();
- rspMap.put("access_token", JwtUtils.createToken(claimsMap));
- rspMap.put("expires_in", expireTime);
- rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
- return rspMap;
+ OauthUserVo oauthUserVo = new OauthUserVo();
+ oauthUserVo.setShopId(qwH5LoginVo.getShopId());
+ oauthUserVo.setShopNum(qwH5LoginVo.getShopNum());
+ oauthUserVo.setShopName(qwH5LoginVo.getShopName());
+ oauthUserVo.setToken(JwtUtils.createToken(claimsMap));
+ oauthUserVo.setExpiresIn(EXPIRE_TIME);
+ oauthUserVo.setUserid(qwH5LoginVo.getUserid());
+ oauthUserVo.setMobile(qwH5LoginVo.getMobile());
+ return oauthUserVo;
}
/**
@@ -188,14 +235,14 @@
public void refreshToken(LoginUser loginUser)
{
loginUser.setLoginTime(System.currentTimeMillis());
- loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+ loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_MINUTE);
// 根据uuid将loginUser缓存
String userKey = getTokenKey(loginUser.getToken());
- redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+ redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.MINUTES);
}
private String getTokenKey(String token)
{
return ACCESS_TOKEN + token;
}
-}
\ No newline at end of file
+}
--
Gitblit v1.7.1