|
|
|
@@ -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.<Boolean>execute(new RedisCallback<Boolean>() { |
|
|
|
@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); |
|
|
|
} |
|
|
|
|
|
|
|
|