|
|
@@ -171,4 +171,46 @@ public class TokenService
|
|
|
{
|
|
|
return ACCESS_TOKEN + token;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建微信登录令牌
|
|
|
+ */
|
|
|
+ public Map<String, Object> createTokenWechat(LoginUser loginUser)
|
|
|
+ {
|
|
|
+ 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());
|
|
|
+ refreshTokenWechat(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);
|
|
|
+
|
|
|
+ // 接口返回信息
|
|
|
+ Map<String, Object> rspMap = new HashMap<String, Object>();
|
|
|
+ rspMap.put("access_token", JwtUtils.createToken(claimsMap));
|
|
|
+ rspMap.put("expires_in", 15 * 24 * MILLIS_MINUTE);
|
|
|
+ return rspMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 刷新微信令牌有效期
|
|
|
+ *
|
|
|
+ * @param loginUser 登录信息
|
|
|
+ */
|
|
|
+ public void refreshTokenWechat(LoginUser loginUser)
|
|
|
+ {
|
|
|
+ loginUser.setLoginTime(System.currentTimeMillis());
|
|
|
+ loginUser.setExpireTime(loginUser.getLoginTime() + 15 * 24 * MILLIS_MINUTE);
|
|
|
+ // 根据uuid将loginUser缓存
|
|
|
+ String userKey = getTokenKey(loginUser.getToken());
|
|
|
+ redisService.setCacheObject(userKey, loginUser, 15L, TimeUnit.DAYS);
|
|
|
+ }
|
|
|
}
|