Просмотр исходного кода

[微信登录][修改]:微信登录多tenantId支持

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
9a8fe3da3e
1 измененных файлов: 9 добавлений и 6 удалений
  1. +9
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java

+ 9
- 6
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.<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);
}



Загрузка…
Отмена
Сохранить