From 74b3557bf43308d8d663565ca0aa37d58ec2781a Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期二, 28 五月 2024 14:41:26 +0800 Subject: [PATCH] 写用户端接口 --- ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 42 insertions(+), 4 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 139ee8b..0351a6b 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 @@ -4,6 +4,9 @@ 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; @@ -32,7 +35,8 @@ 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; @@ -61,7 +65,41 @@ // 接口返回信息 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; + } + + public Map<String, Object> createMiniToken(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("wx_unionid", appMiniLoginVo.getWxUnionid()); + rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid()); + rspMap.put("zfb_userid", appMiniLoginVo.getZfbuserid()); + rspMap.put("phone",appMiniLoginVo.getPhone()); return rspMap; } @@ -156,10 +194,10 @@ 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) -- Gitblit v1.7.1