添加手机号注册和邮箱注册

This commit is contained in:
dftre 2024-11-05 17:51:43 +08:00
parent de3a02b439
commit e17d9f4618
5 changed files with 48 additions and 14 deletions

View File

@ -6,9 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; 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.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.RegisterBody;
import com.ruoyi.tfa.email.service.impl.MailServiceImpl; import com.ruoyi.tfa.email.service.impl.MailServiceImpl;
@RestController @RestController
@ -29,4 +31,18 @@ public class MailAuthController extends BaseController {
serviceImpl.doBindVerify(loginBody); serviceImpl.doBindVerify(loginBody);
return success(); 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();
}
} }

View File

@ -57,8 +57,10 @@ public class MailServiceImpl implements IMailService {
if (StringUtils.isEmpty(code)) if (StringUtils.isEmpty(code))
return false; return false;
String cachedCode = CacheUtils.get(CacheConstants.EMAIL_CODES, use.getValue() + email, String.class); // 从缓存中获取验证码 String cachedCode = CacheUtils.get(CacheConstants.EMAIL_CODES, use.getValue() + email, String.class); // 从缓存中获取验证码
boolean isValid = code.equals(cachedCode);
if (isValid)
CacheUtils.remove(CacheConstants.EMAIL_CODES, use.getValue() + email); CacheUtils.remove(CacheConstants.EMAIL_CODES, use.getValue() + email);
return code.equals(cachedCode); return isValid;
} }
public void doLogin(LoginBody loginBody, boolean isRegister) { public void doLogin(LoginBody loginBody, boolean isRegister) {
@ -104,6 +106,7 @@ public class MailServiceImpl implements IMailService {
if (checkCode(registerBody.getEmail(), registerBody.getCode(), OauthVerificationUse.REGISTER)) { if (checkCode(registerBody.getEmail(), registerBody.getCode(), OauthVerificationUse.REGISTER)) {
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
sysUser.setUserName(registerBody.getEmail()); sysUser.setUserName(registerBody.getEmail());
sysUser.setNickName(registerBody.getEmail());
sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
sysUser.setEmail(registerBody.getEmail()); sysUser.setEmail(registerBody.getEmail());
userService.registerUser(sysUser); userService.registerUser(sysUser);

View File

@ -6,9 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; 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.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.RegisterBody;
import com.ruoyi.tfa.phone.service.Impl.DySmsServiceImpl; import com.ruoyi.tfa.phone.service.Impl.DySmsServiceImpl;
/** /**
@ -18,7 +20,7 @@ import com.ruoyi.tfa.phone.service.Impl.DySmsServiceImpl;
* @date 2024-04-16 * @date 2024-04-16
*/ */
@RestController @RestController
@RequestMapping("/tfa/phone") @RequestMapping("/auth/phone")
public class DySmsAuthController extends BaseController { public class DySmsAuthController extends BaseController {
@Autowired @Autowired
public DySmsServiceImpl dySmsService; public DySmsServiceImpl dySmsService;
@ -34,4 +36,18 @@ public class DySmsAuthController extends BaseController {
dySmsService.doBindVerify(loginBody); dySmsService.doBindVerify(loginBody);
return success(); 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();
}
} }

View File

@ -43,6 +43,7 @@ public class DySmsServiceImpl implements DySmsService {
private TokenService tokenService; private TokenService tokenService;
private static final Logger log = LoggerFactory.getLogger(DySmsServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(DySmsServiceImpl.class);
@Override @Override
public boolean sendCode(String phone, String code, OauthVerificationUse use) { public boolean sendCode(String phone, String code, OauthVerificationUse use) {
if (CacheUtils.hasKey(CacheConstants.PHONE_CODES, use.getValue() + phone)) { if (CacheUtils.hasKey(CacheConstants.PHONE_CODES, use.getValue() + phone)) {
@ -66,8 +67,10 @@ public class DySmsServiceImpl implements DySmsService {
if (StringUtils.isEmpty(code)) if (StringUtils.isEmpty(code))
return false; return false;
String cachedCode = CacheUtils.get(CacheConstants.PHONE_CODES, use.getValue() + phone, String.class); // 从缓存中获取验证码 String cachedCode = CacheUtils.get(CacheConstants.PHONE_CODES, use.getValue() + phone, String.class); // 从缓存中获取验证码
boolean isValid = code.equals(cachedCode);
if (isValid)
CacheUtils.remove(CacheConstants.PHONE_CODES, use.getValue() + phone); CacheUtils.remove(CacheConstants.PHONE_CODES, use.getValue() + phone);
return code.equals(cachedCode); return isValid;
} }
public void doLogin(LoginBody loginBody, boolean isRegister) { public void doLogin(LoginBody loginBody, boolean isRegister) {
@ -113,6 +116,7 @@ public class DySmsServiceImpl implements DySmsService {
if (checkCode(registerBody.getPhonenumber(), registerBody.getCode(), OauthVerificationUse.REGISTER)) { if (checkCode(registerBody.getPhonenumber(), registerBody.getCode(), OauthVerificationUse.REGISTER)) {
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
sysUser.setUserName(registerBody.getPhonenumber()); sysUser.setUserName(registerBody.getPhonenumber());
sysUser.setNickName(registerBody.getUsername());
sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
sysUser.setPhonenumber(registerBody.getPhonenumber()); sysUser.setPhonenumber(registerBody.getPhonenumber());
return userService.registerUser(sysUser); return userService.registerUser(sysUser);

View File

@ -11,6 +11,7 @@ import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config; import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.Common; import com.aliyun.teautil.Common;
import com.aliyun.teautil.models.RuntimeOptions; import com.aliyun.teautil.models.RuntimeOptions;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.tfa.phone.config.DySmsConfig; import com.ruoyi.tfa.phone.config.DySmsConfig;
import com.ruoyi.tfa.phone.enums.DySmsTemplate; import com.ruoyi.tfa.phone.enums.DySmsTemplate;
@ -67,9 +68,10 @@ public class DySmsUtil {
// 复制代码运行请自行打印 API 的返回值 // 复制代码运行请自行打印 API 的返回值
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions()); SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
if (sendSmsResponse.getBody().getCode().equals("OK")) { if (sendSmsResponse.getBody().getCode().equals("OK")) {
logger.info("短信接口返回的数据---", sendSmsResponse.getBody().getMessage()); logger.info("短信接口返回的数据--- {}", sendSmsResponse.getBody().getMessage());
} else { } else {
logger.error("短信接口返回的数据---", sendSmsResponse.getBody().getMessage()); logger.error("短信接口返回的数据--- {}", sendSmsResponse.getBody().getMessage());
throw new ServiceException(sendSmsResponse.getBody().getMessage());
} }
} catch (TeaException error) { } catch (TeaException error) {
// 错误 message // 错误 message
@ -77,13 +79,6 @@ public class DySmsUtil {
// 诊断地址 // 诊断地址
System.out.println(error.getData().get("Recommend")); System.out.println(error.getData().get("Recommend"));
Common.assertAsString(error.message); 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);
} }
} }
} }