diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryAuthServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryAuthServiceImpl.java index 48e03a48d..9d5d9af7a 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryAuthServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryAuthServiceImpl.java @@ -13,6 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.TokenUtil; +import org.springblade.core.redis.cache.BladeRedis; import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; @@ -31,6 +32,8 @@ public class FactoryAuthServiceImpl implements IFactoryAuthService { private final IFactoryAccountService factoryAccountService; private final IFactoryTokenService factoryTokenService; + private final BladeRedis bladeRedis; + @Override public FactoryTokenVO getToken(String corpId, String appKey, String appSecret) throws NoSuchAlgorithmException { @@ -71,6 +74,11 @@ public class FactoryAuthServiceImpl implements IFactoryAuthService { factoryTokenVO.setToken(token); factoryTokenVO.setExpireTime(date); factoryTokenVO.setExpireTimeLong(date.getTime()); + + + // 增加redis缓存 疑似梦天请求太快 无法出现数据 + bladeRedis.setEx("corpId:"+corpId, factoryToken, 60*60*24*30L); + return factoryTokenVO; } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryTokenServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryTokenServiceImpl.java index 672b9984e..714e3c73a 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryTokenServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/FactoryTokenServiceImpl.java @@ -8,6 +8,7 @@ import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.redis.cache.BladeRedis; import org.springframework.stereotype.Service; import java.security.NoSuchAlgorithmException; @@ -20,6 +21,8 @@ public class FactoryTokenServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("token",token) - .eq("corpid",corpId); - FactoryToken factoryToken = baseMapper.selectOne(queryWrapper); + String key ="corpId:"+corpId; + FactoryToken factoryToken = bladeRedis.get(key); + + if(Objects.isNull(factoryToken)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("token",token); + factoryToken = baseMapper.selectOne(queryWrapper); + } + + if(Objects.isNull(factoryToken)){ - logger.error("#########verifyToken: token验证不通过 token={},corpid={}",token,corpId); + logger.error("#########verifyToken: token1验证不通过 token={},corpid={}",token,corpId); + return false; + } + logger.info("#########verifyToken: 验证token 传入token {} 验证token {}",token,factoryToken.getToken()); + if(!factoryToken.getToken().equals(token)){ + logger.error("#########verifyToken: toke2n验证不通过 token={},corpid={}",token,corpId); return false; } + + Long expireTimeLong = factoryToken.getExpireTime().getTime(); Long now = new Date().getTime(); //判断是否过期