diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index df4a37d79..db2a20a21 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -22,6 +22,7 @@ import com.czg.service.account.mapper.SysMenuMapper; import com.wf.captcha.SpecCaptcha; import jakarta.annotation.Resource; import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -55,6 +56,9 @@ public class AuthorizationServiceImpl implements AuthorizationService { private HandoverRecordService handoverRecordService; + @Value("${spring.profiles.active}") + private String activeProfile; + @Override public Object getCaptcha() { // 生成验证码(130x48,4位字符) @@ -79,7 +83,21 @@ public class AuthorizationServiceImpl implements AuthorizationService { @Override public LoginVO login(SysLoginDTO loginDTO, String platType) { Object code = redisService.get(RedisCst.LOGIN_CODE + loginDTO.uuid()); - if (!"666666".equals(loginDTO.code()) && (code == null || !code.equals(loginDTO.code().toLowerCase()))) { + if (code == null) { + throw new CzgException("验证码已过期"); + } + + String userCode = loginDTO.code(); + boolean isDevEnv = "dev".equals(activeProfile); + + // 核心验证逻辑 + boolean isCodeValid = + // 开发环境万能码 + (isDevEnv && "666666".equals(userCode)) + // 正常验证码匹配 + || code.equals(userCode.toLowerCase()); + + if (!isCodeValid) { throw new CzgException("验证码错误"); }