From c203ff63489126a94d1be5dbfe32cadb69a70594 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 25 五月 2023 16:26:56 +0800 Subject: [PATCH] 完善数据库和框架 --- ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 71 ++++++++++++++++++++++++++++------- 1 files changed, 56 insertions(+), 15 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..3c38eb0 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 @@ -5,7 +5,10 @@ import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; +import com.ruoyi.common.core.constant.Constants; import com.ruoyi.system.api.model.AppMiniLoginVo; +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 com.ruoyi.common.core.constant.CacheConstants; @@ -21,7 +24,7 @@ /** * 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,43 @@ 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 + 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); + } + if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){ + rspMap.put("mobile",appMiniLoginVo.getMobile() ); + } + 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(); @@ -88,13 +127,15 @@ 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.setToken(JwtUtils.createToken(claimsMap)); + oauthUserVo.setExpiresIn(EXPIRE_TIME); + oauthUserVo.setUserid(qwH5LoginVo.getUserid()); + oauthUserVo.setMobile(qwH5LoginVo.getMobile()); + return oauthUserVo; } /** @@ -188,14 +229,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