From e19c7baded8360f913630d804d6215539782ba78 Mon Sep 17 00:00:00 2001 From: xuyuxiang Date: Sat, 2 Aug 2025 23:09:14 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91AuthApi?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=96=B9=E4=BE=BF=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E6=A8=A1=E5=9D=97=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/vip/xiaonuo/auth/api/AuthApi.java | 16 ++++ .../auth/modular/auth/AuthApiProvider.java | 10 ++ .../modular/login/service/AuthService.java | 16 ++++ .../login/service/impl/AuthServiceImpl.java | 94 +++++++++++-------- 4 files changed, 97 insertions(+), 39 deletions(-) diff --git a/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/api/AuthApi.java b/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/api/AuthApi.java index cd96fa94..46e0487b 100644 --- a/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/api/AuthApi.java +++ b/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/api/AuthApi.java @@ -38,6 +38,22 @@ public interface AuthApi { */ Long getThirdUserCount(); + /** + * 获取B端验证码是否开启 + * + * @author xuyuxiang + * @date 2021/12/28 14:46 + **/ + boolean getDefaultCaptchaOpenForB(); + + /** + * 获取C端验证码是否开启 + * + * @author xuyuxiang + * @date 2021/12/28 14:46 + **/ + boolean getDefaultCaptchaOpenForC(); + /** * 校验验证码 * diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/auth/AuthApiProvider.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/auth/AuthApiProvider.java index 7d136b69..24c7078f 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/auth/AuthApiProvider.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/auth/AuthApiProvider.java @@ -83,6 +83,16 @@ public class AuthApiProvider implements AuthApi { return authThirdService.count(); } + @Override + public boolean getDefaultCaptchaOpenForB() { + return authService.getDefaultCaptchaOpenForB(); + } + + @Override + public boolean getDefaultCaptchaOpenForC() { + return authService.getDefaultCaptchaOpenForC(); + } + @Override public void validValidCode(String phoneOrEmail, String validCode, String validCodeReqNo) { authService.validValidCode(phoneOrEmail, validCode, validCodeReqNo); diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/AuthService.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/AuthService.java index 71411946..f690293d 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/AuthService.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/AuthService.java @@ -120,4 +120,20 @@ public interface AuthService { * @date 2021/12/28 14:46 **/ void validValidCode(String phoneOrEmail, String validCode, String validCodeReqNo); + + /** + * 获取B端验证码是否开启 + * + * @author xuyuxiang + * @date 2021/12/28 14:46 + **/ + boolean getDefaultCaptchaOpenForB(); + + /** + * 获取C端验证码是否开启 + * + * @author xuyuxiang + * @date 2021/12/28 14:46 + **/ + boolean getDefaultCaptchaOpenForC(); } diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java index f19d53dd..4e8c2b05 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java @@ -346,6 +346,26 @@ public class AuthServiceImpl implements AuthService { } } + @Override + public boolean getDefaultCaptchaOpenForB() { + String defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_B_KEY); + if(ObjectUtil.isNotEmpty(defaultCaptchaOpen)) { + return Convert.toBool(defaultCaptchaOpen); + } else { + return false; + } + } + + @Override + public boolean getDefaultCaptchaOpenForC() { + String defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_C_KEY); + if(ObjectUtil.isNotEmpty(defaultCaptchaOpen)) { + return Convert.toBool(defaultCaptchaOpen); + } else { + return false; + } + } + /** * 校验手机号与验证码等参数 * @@ -429,29 +449,27 @@ public class AuthServiceImpl implements AuthService { AuthDeviceTypeEnum.validate(device); } // 校验验证码 - String defaultCaptchaOpen; + boolean defaultCaptchaOpen; if(SaClientTypeEnum.B.getValue().equals(type)) { - defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_B_KEY); + defaultCaptchaOpen = getDefaultCaptchaOpenForB(); } else { - defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_C_KEY); + defaultCaptchaOpen = getDefaultCaptchaOpenForC(); } - if(ObjectUtil.isNotEmpty(defaultCaptchaOpen)) { - if(Convert.toBool(defaultCaptchaOpen)) { - // 获取验证码 - String validCode = authAccountPasswordLoginParam.getValidCode(); - // 获取验证码请求号 - String validCodeReqNo = authAccountPasswordLoginParam.getValidCodeReqNo(); - // 开启验证码则必须传入验证码 - if(ObjectUtil.isEmpty(validCode)) { - throw new CommonException(AuthExceptionEnum.VALID_CODE_EMPTY.getValue()); - } - // 开启验证码则必须传入验证码请求号 - if(ObjectUtil.isEmpty(validCodeReqNo)) { - throw new CommonException(AuthExceptionEnum.VALID_CODE_REQ_NO_EMPTY.getValue()); - } - // 执行校验图形验证码 - validValidCode(null, validCode, validCodeReqNo); + if(defaultCaptchaOpen) { + // 获取验证码 + String validCode = authAccountPasswordLoginParam.getValidCode(); + // 获取验证码请求号 + String validCodeReqNo = authAccountPasswordLoginParam.getValidCodeReqNo(); + // 开启验证码则必须传入验证码 + if(ObjectUtil.isEmpty(validCode)) { + throw new CommonException(AuthExceptionEnum.VALID_CODE_EMPTY.getValue()); } + // 开启验证码则必须传入验证码请求号 + if(ObjectUtil.isEmpty(validCodeReqNo)) { + throw new CommonException(AuthExceptionEnum.VALID_CODE_REQ_NO_EMPTY.getValue()); + } + // 执行校验图形验证码 + validValidCode(null, validCode, validCodeReqNo); } // SM2解密并获得前端传来的密码哈希值 String passwordHash; @@ -806,7 +824,7 @@ public class AuthServiceImpl implements AuthService { throw new CommonException(AuthExceptionEnum.ACCOUNT_DISABLED.getValue()); } // 执行登录 - StpClientUtil.login(saBaseClientLoginUser.getId(), new SaLoginParameter().setDevice(device).setExtra("name", saBaseClientLoginUser.getName())); + StpClientUtil.login(saBaseClientLoginUser.getId(), new SaLoginParameter().setDeviceType(device).setExtra("name", saBaseClientLoginUser.getName())); // 填充C端用户信息并更新缓存 fillSaBaseClientLoginUserAndUpdateCache(saBaseClientLoginUser); // 返回token @@ -945,29 +963,27 @@ public class AuthServiceImpl implements AuthService { // 获取密码 String password = authRegisterParam.getPassword(); // 校验验证码 - String defaultCaptchaOpen; + boolean defaultCaptchaOpen; if(SaClientTypeEnum.B.getValue().equals(type)) { - defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_B_KEY); + defaultCaptchaOpen = getDefaultCaptchaOpenForB(); } else { - defaultCaptchaOpen = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_CAPTCHA_OPEN_FLAG_FOR_C_KEY); + defaultCaptchaOpen = getDefaultCaptchaOpenForC(); } - if(ObjectUtil.isNotEmpty(defaultCaptchaOpen)) { - if(Convert.toBool(defaultCaptchaOpen)) { - // 获取验证码 - String validCode = authRegisterParam.getValidCode(); - // 获取验证码请求号 - String validCodeReqNo = authRegisterParam.getValidCodeReqNo(); - // 开启验证码则必须传入验证码 - if(ObjectUtil.isEmpty(validCode)) { - throw new CommonException(AuthExceptionEnum.VALID_CODE_EMPTY.getValue()); - } - // 开启验证码则必须传入验证码请求号 - if(ObjectUtil.isEmpty(validCodeReqNo)) { - throw new CommonException(AuthExceptionEnum.VALID_CODE_REQ_NO_EMPTY.getValue()); - } - // 执行校验图形验证码 - validValidCode(null, validCode, validCodeReqNo); + if(Convert.toBool(defaultCaptchaOpen)) { + // 获取验证码 + String validCode = authRegisterParam.getValidCode(); + // 获取验证码请求号 + String validCodeReqNo = authRegisterParam.getValidCodeReqNo(); + // 开启验证码则必须传入验证码 + if(ObjectUtil.isEmpty(validCode)) { + throw new CommonException(AuthExceptionEnum.VALID_CODE_EMPTY.getValue()); } + // 开启验证码则必须传入验证码请求号 + if(ObjectUtil.isEmpty(validCodeReqNo)) { + throw new CommonException(AuthExceptionEnum.VALID_CODE_REQ_NO_EMPTY.getValue()); + } + // 执行校验图形验证码 + validValidCode(null, validCode, validCodeReqNo); } // SM2解密前端传来的密码 String passwordDecrypt = CommonCryptogramUtil.doSm2Decrypt(password);