diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java index 4abd319b..911235c6 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java @@ -69,11 +69,6 @@ public class LoginController { @PostMapping("/smsVerification") @Operation(summary = "短信验证码") public Result smsVerification(@RequestBody SmsVerificationDTO dto) { - // 验证图形验证码 - boolean validate = captchaService.validate(dto.getCaptchaId(), dto.getCaptcha(), true); - if (!validate) { - throw new RenException(ErrorCode.SMS_CAPTCHA_ERROR); - } Boolean isMobileRegister = sysParamsService .getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class); if (!isMobileRegister) { @@ -182,13 +177,18 @@ public class LoginController { // 是否开启手机注册 Boolean isMobileRegister = sysParamsService .getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class); - + boolean validate; if (isMobileRegister) { // 验证用户是否是手机号码 boolean validPhone = ValidatorUtils.isValidPhone(login.getUsername()); if (!validPhone) { throw new RenException(ErrorCode.USERNAME_NOT_PHONE); } + // 验证短信验证码是否正常 + validate = captchaService.validateSMSValidateCode(login.getUsername(), login.getMobileCaptcha(), false); + if (!validate) { + throw new RenException(ErrorCode.SMS_CODE_ERROR); + } } // 按照用户名获取用户 diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/dto/LoginDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/security/dto/LoginDTO.java index 12b99d32..df13f23d 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/dto/LoginDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/dto/LoginDTO.java @@ -21,10 +21,6 @@ public class LoginDTO implements Serializable { @NotBlank(message = "{sysuser.password.require}") private String password; - @Schema(description = "验证码") - @NotBlank(message = "{sysuser.captcha.require}") - private String captcha; - @Schema(description = "手机验证码") private String mobileCaptcha; diff --git a/main/manager-web/src/utils/index.js b/main/manager-web/src/utils/index.js index 1954df09..1f4915f2 100755 --- a/main/manager-web/src/utils/index.js +++ b/main/manager-web/src/utils/index.js @@ -256,19 +256,3 @@ export function sm2Decrypt(privateKey, cipherText) { return sm2.doDecrypt(dataWithoutPrefix, privateKey, 1); } -/** - * 判断字符串是否为Base64编码 - * @param {string} str 待判断的字符串 - * @returns {boolean} 是否为Base64编码 - */ -export function isBase64(str) { - if (typeof str !== 'string' || str.trim() === '') { - return false; - } - try { - return btoa(atob(str)) === str; - } catch (e) { - return false; - } -} - diff --git a/main/manager-web/src/views/login.vue b/main/manager-web/src/views/login.vue index 577069e8..2dd9761c 100644 --- a/main/manager-web/src/views/login.vue +++ b/main/manager-web/src/views/login.vue @@ -148,7 +148,7 @@ import Api from "@/apis/api"; import VersionFooter from "@/components/VersionFooter.vue"; import i18n, { changeLanguage } from "@/i18n"; -import { getUUID, goToPage, showDanger, showSuccess, validateMobile, sm2Encrypt, isBase64 } from "@/utils"; +import { getUUID, goToPage, showDanger, showSuccess, validateMobile, sm2Encrypt } from "@/utils"; import { mapState } from "vuex"; import Constant from "@/utils/constant"; @@ -212,32 +212,25 @@ export default { methods: { // 获取服务器公钥 getServerPublicKey() { - console.log('开始获取服务器公钥...'); // 先从本地存储获取 const storedPublicKey = localStorage.getItem(Constant.STORAGE_KEY.PUBLIC_KEY); if (storedPublicKey) { - console.log('从本地存储获取到公钥,长度:', storedPublicKey.length); this.serverPublicKey = storedPublicKey; return; } - console.log('本地存储无公钥,从服务器获取...'); // 从公共配置接口获取公钥 Api.user.getPubConfig( (res) => { if (res.data && res.data.data && res.data.data.sm2PublicKey) { - console.log('获取到服务器公钥,长度:', res.data.data.sm2PublicKey.length); this.serverPublicKey = res.data.data.sm2PublicKey; // 存储到本地 localStorage.setItem(Constant.STORAGE_KEY.PUBLIC_KEY, this.serverPublicKey); - console.log('公钥已存储到本地'); } else { - console.error('服务器返回数据格式异常:', res); showDanger(this.$t('sm2.failedToGetPublicKey')); } }, (err) => { - console.error("获取公共配置失败:", err); showDanger(this.$t('sm2.failedToGetPublicKey')); } ); diff --git a/main/manager-web/src/views/register.vue b/main/manager-web/src/views/register.vue index 30168940..3e9dd910 100644 --- a/main/manager-web/src/views/register.vue +++ b/main/manager-web/src/views/register.vue @@ -121,7 +121,7 @@