一、页面流程
进入个人页面的时候必须先登录,因此当你点击按钮的这一刻,它就会跳转到登录页面了,在登陆的时候需要先输入手机号,然后发送验证码,点击 发送验证码
的时候,一个请求就会发送到服务端了,而服务端要处理的就是这个请求。
请求路径:http://localhost:8080/api/user/code?phone=15342542256
,api是用来标识发向tomcat服务的请求,我们不用管,它会自动过滤掉,因此真正的请求路径应该是 /user/code
,后面的参数就是 phone
,拿到手机号我们就可以向这个手机号发验证码了。
二、代码实现
UserController.java
/**
* 发送手机验证码
*/
@PostMapping("code")
public Result sendCode(@RequestParam("phone") String phone, HttpSession session) {
return userService.sendCode(phone, session);
}
发送验证码,功能全部放到Service中做
UserServiceImpl.java
@Override
public Result sendCode(String phone, HttpSession session) {
// 1.校验手机号,RegexUtils是我们自己定义的正则工具类
if (RegexUtils.isPhoneInvalid(phone)) {
// 2.如果不符合,返回错误信息
return Result.fail("手机号格式错误!");
}
// 3.符合,使用hutool工具类生成验证码
String code = RandomUtil.randomNumbers(6); // 获得一个只包含6位数字的字符串
// 4.保存验证码到 session
session.setAttribute("code",code);
// 5.发送验证码,这里先不做,因为发送验证码需要去调用第三方的平台,实现起来稍微会有些复杂,并不是我们的讲解的重点,因此这里就使用日志来记录一下,一般发送验证码在公司中都会有一个独立的服务去做,你直接调用那个服务就行了
log.debug("发送短信验证码成功,验证码:{}", code); // @Slf4j
// 返回ok
return Result.ok();
}
重启服务测试,可以发现发送成功