| @@ -207,14 +207,15 @@ public class WechatLoginController extends BaseController { | |||||
| } | } | ||||
| } else { | } else { | ||||
| // 跳转登录选择页面 | // 跳转登录选择页面 | ||||
| String key = WECHAT_PREV + TOTP.generateWechatOpen(accessToken.getOpenId()); | |||||
| String openId = accessToken.getOpenId(); | |||||
| String key = WECHAT_PREV + TOTP.generateWechatOpen(openId); | |||||
| Boolean isAbsent = openRedisTemplate.<Boolean>execute(new RedisCallback<Boolean>() { | Boolean isAbsent = openRedisTemplate.<Boolean>execute(new RedisCallback<Boolean>() { | ||||
| @Override | @Override | ||||
| public Boolean doInRedis(RedisConnection connection) throws DataAccessException { | public Boolean doInRedis(RedisConnection connection) throws DataAccessException { | ||||
| RedisSerializer valueSerializer = openRedisTemplate.getValueSerializer(); | RedisSerializer valueSerializer = openRedisTemplate.getValueSerializer(); | ||||
| RedisSerializer keySerializer = openRedisTemplate.getKeySerializer(); | RedisSerializer keySerializer = openRedisTemplate.getKeySerializer(); | ||||
| Object obj = connection.execute("set", keySerializer.serialize(key), | Object obj = connection.execute("set", keySerializer.serialize(key), | ||||
| valueSerializer.serialize(key), | |||||
| valueSerializer.serialize(openId), | |||||
| SafeEncoder.encode("NX"), | SafeEncoder.encode("NX"), | ||||
| SafeEncoder.encode("EX"), | SafeEncoder.encode("EX"), | ||||
| Protocol.toByteArray(60)); // 60s 过期时间 | Protocol.toByteArray(60)); // 60s 过期时间 | ||||
| @@ -273,10 +274,11 @@ public class WechatLoginController extends BaseController { | |||||
| String openKey = WECHAT_PREV + key; | String openKey = WECHAT_PREV + key; | ||||
| // 限时时间内查找到此用户openId | // 限时时间内查找到此用户openId | ||||
| if (openRedisTemplate.hasKey(WECHAT_PREV + key)){ | |||||
| if (openRedisTemplate.hasKey(openKey)){ | |||||
| log.info(openKey + " - 找不到"); | |||||
| String openId = openRedisTemplate.opsForValue().get(openKey); | String openId = openRedisTemplate.opsForValue().get(openKey); | ||||
| // 删除缓存 | |||||
| openRedisTemplate.delete(openKey); | openRedisTemplate.delete(openKey); | ||||
| log.info("KEY: " + openKey + " deleted"); | |||||
| MallUserInfo userInfo = mallUserInfoService.getByUsername(userName); | MallUserInfo userInfo = mallUserInfoService.getByUsername(userName); | ||||
| if(userInfo.getWebOpenId().equals(openId)) { | if(userInfo.getWebOpenId().equals(openId)) { | ||||
| @@ -315,10 +317,11 @@ public class WechatLoginController extends BaseController { | |||||
| } | } | ||||
| } else { | } 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); | return new ResultData(ErrorCode.WECHAT_LOGIN_KEY_OVERTIME); | ||||
| } | } | ||||