diff --git a/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/controller/MailAuthController.java b/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/controller/MailAuthController.java index bf6e98a..b50577b 100644 --- a/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/controller/MailAuthController.java +++ b/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/controller/MailAuthController.java @@ -6,9 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.tfa.email.service.impl.MailServiceImpl; @RestController @@ -29,4 +31,18 @@ public class MailAuthController extends BaseController { serviceImpl.doBindVerify(loginBody); return success(); } + + @PostMapping("/send/register") + @Anonymous + public AjaxResult sendRegister(@RequestBody RegisterBody registerBody) { + serviceImpl.doRegister(registerBody); + return success(); + } + + @PostMapping("/verify/register") + @Anonymous + public AjaxResult verifyRegister(@RequestBody RegisterBody registerBody) { + serviceImpl.doRegisterVerify(registerBody); + return success(); + } } diff --git a/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/service/impl/MailServiceImpl.java b/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/service/impl/MailServiceImpl.java index 4abf47a..c2c65f9 100644 --- a/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/service/impl/MailServiceImpl.java +++ b/ruoyi-auth/ruoyi-tfa-email/src/main/java/com/ruoyi/tfa/email/service/impl/MailServiceImpl.java @@ -57,8 +57,10 @@ public class MailServiceImpl implements IMailService { if (StringUtils.isEmpty(code)) return false; String cachedCode = CacheUtils.get(CacheConstants.EMAIL_CODES, use.getValue() + email, String.class); // 从缓存中获取验证码 - CacheUtils.remove(CacheConstants.EMAIL_CODES, use.getValue() + email); - return code.equals(cachedCode); + boolean isValid = code.equals(cachedCode); + if (isValid) + CacheUtils.remove(CacheConstants.EMAIL_CODES, use.getValue() + email); + return isValid; } public void doLogin(LoginBody loginBody, boolean isRegister) { @@ -104,6 +106,7 @@ public class MailServiceImpl implements IMailService { if (checkCode(registerBody.getEmail(), registerBody.getCode(), OauthVerificationUse.REGISTER)) { SysUser sysUser = new SysUser(); sysUser.setUserName(registerBody.getEmail()); + sysUser.setNickName(registerBody.getEmail()); sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); sysUser.setEmail(registerBody.getEmail()); userService.registerUser(sysUser); diff --git a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/controller/DySmsAuthController.java b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/controller/DySmsAuthController.java index b4e56b3..1134693 100644 --- a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/controller/DySmsAuthController.java +++ b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/controller/DySmsAuthController.java @@ -6,9 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.tfa.phone.service.Impl.DySmsServiceImpl; /** @@ -18,7 +20,7 @@ import com.ruoyi.tfa.phone.service.Impl.DySmsServiceImpl; * @date 2024-04-16 */ @RestController -@RequestMapping("/tfa/phone") +@RequestMapping("/auth/phone") public class DySmsAuthController extends BaseController { @Autowired public DySmsServiceImpl dySmsService; @@ -34,4 +36,18 @@ public class DySmsAuthController extends BaseController { dySmsService.doBindVerify(loginBody); return success(); } + + @PostMapping("/send/register") + @Anonymous + public AjaxResult sendRegister(@RequestBody RegisterBody registerBody) { + dySmsService.doRegister(registerBody); + return success(); + } + + @PostMapping("/verify/register") + @Anonymous + public AjaxResult verifyRegister(@RequestBody RegisterBody registerBody) { + dySmsService.doRegisterVerify(registerBody); + return success(); + } } diff --git a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/service/Impl/DySmsServiceImpl.java b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/service/Impl/DySmsServiceImpl.java index 1553970..8f74795 100644 --- a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/service/Impl/DySmsServiceImpl.java +++ b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/service/Impl/DySmsServiceImpl.java @@ -43,6 +43,7 @@ public class DySmsServiceImpl implements DySmsService { private TokenService tokenService; private static final Logger log = LoggerFactory.getLogger(DySmsServiceImpl.class); + @Override public boolean sendCode(String phone, String code, OauthVerificationUse use) { if (CacheUtils.hasKey(CacheConstants.PHONE_CODES, use.getValue() + phone)) { @@ -66,8 +67,10 @@ public class DySmsServiceImpl implements DySmsService { if (StringUtils.isEmpty(code)) return false; String cachedCode = CacheUtils.get(CacheConstants.PHONE_CODES, use.getValue() + phone, String.class); // 从缓存中获取验证码 - CacheUtils.remove(CacheConstants.PHONE_CODES, use.getValue() + phone); - return code.equals(cachedCode); + boolean isValid = code.equals(cachedCode); + if (isValid) + CacheUtils.remove(CacheConstants.PHONE_CODES, use.getValue() + phone); + return isValid; } public void doLogin(LoginBody loginBody, boolean isRegister) { @@ -113,6 +116,7 @@ public class DySmsServiceImpl implements DySmsService { if (checkCode(registerBody.getPhonenumber(), registerBody.getCode(), OauthVerificationUse.REGISTER)) { SysUser sysUser = new SysUser(); sysUser.setUserName(registerBody.getPhonenumber()); + sysUser.setNickName(registerBody.getUsername()); sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); sysUser.setPhonenumber(registerBody.getPhonenumber()); return userService.registerUser(sysUser); diff --git a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/utils/DySmsUtil.java b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/utils/DySmsUtil.java index 5d8badb..280c5a1 100644 --- a/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/utils/DySmsUtil.java +++ b/ruoyi-auth/ruoyi-tfa-phone/src/main/java/com/ruoyi/tfa/phone/utils/DySmsUtil.java @@ -11,6 +11,7 @@ import com.aliyun.tea.TeaException; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.Common; import com.aliyun.teautil.models.RuntimeOptions; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.tfa.phone.config.DySmsConfig; import com.ruoyi.tfa.phone.enums.DySmsTemplate; @@ -67,9 +68,10 @@ public class DySmsUtil { // 复制代码运行请自行打印 API 的返回值 SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions()); if (sendSmsResponse.getBody().getCode().equals("OK")) { - logger.info("短信接口返回的数据---", sendSmsResponse.getBody().getMessage()); + logger.info("短信接口返回的数据--- {}", sendSmsResponse.getBody().getMessage()); } else { - logger.error("短信接口返回的数据---", sendSmsResponse.getBody().getMessage()); + logger.error("短信接口返回的数据--- {}", sendSmsResponse.getBody().getMessage()); + throw new ServiceException(sendSmsResponse.getBody().getMessage()); } } catch (TeaException error) { // 错误 message @@ -77,13 +79,6 @@ public class DySmsUtil { // 诊断地址 System.out.println(error.getData().get("Recommend")); Common.assertAsString(error.message); - } catch (Exception _error) { - TeaException error = new TeaException(_error.getMessage(), _error); - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - Common.assertAsString(error.message); } } } \ No newline at end of file