diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index b52ed0097..215f94316 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -207,14 +207,15 @@ public class WechatLoginController extends BaseController { } } else { // 跳转登录选择页面 - String key = WECHAT_PREV + TOTP.generateWechatOpen(accessToken.getOpenId()); + String openId = accessToken.getOpenId(); + String key = WECHAT_PREV + TOTP.generateWechatOpen(openId); Boolean isAbsent = openRedisTemplate.execute(new RedisCallback() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer valueSerializer = openRedisTemplate.getValueSerializer(); RedisSerializer keySerializer = openRedisTemplate.getKeySerializer(); Object obj = connection.execute("set", keySerializer.serialize(key), - valueSerializer.serialize(key), + valueSerializer.serialize(openId), SafeEncoder.encode("NX"), SafeEncoder.encode("EX"), Protocol.toByteArray(60)); // 60s 过期时间 @@ -273,10 +274,11 @@ public class WechatLoginController extends BaseController { String openKey = WECHAT_PREV + key; // 限时时间内查找到此用户openId - if (openRedisTemplate.hasKey(WECHAT_PREV + key)){ + if (openRedisTemplate.hasKey(openKey)){ + log.info(openKey + " - 找不到"); String openId = openRedisTemplate.opsForValue().get(openKey); - // 删除缓存 openRedisTemplate.delete(openKey); + log.info("KEY: " + openKey + " deleted"); MallUserInfo userInfo = mallUserInfoService.getByUsername(userName); if(userInfo.getWebOpenId().equals(openId)) { @@ -315,10 +317,11 @@ public class WechatLoginController extends BaseController { } } else { // 登录失败 - log.error("微信登录失败,未找到对应的openId"); - return new ResultData(ErrorCode.WECHAT_LOGIN_KEY_OVERTIME); + log.error("微信登录失败,用户微信未绑定"); + return new ResultData(ErrorCode.WECHAT_LOGIN_NOT_BIND); } } + log.error("微信登录失败,KEY已过期"); return new ResultData(ErrorCode.WECHAT_LOGIN_KEY_OVERTIME); }