A. 概述
首先明确一下目标:做一个通过手机验证找回(修改)账户密码的功能,例如:
流程大致如下:
1)用户输入手机号码
2)点击获取验证码(这时候前端有一些任务,如验证手机号格式,时间倒计时,按钮状态等等,这里只记录java部分)
3)后台验证手机号码是否属于且只属于某个账户,如果是生成验证码发送给该手机号并保存验证码、手机号、发送时间、有效时间为一条验证记录到数据库中等待验证
4)用户收到信息并将验证码输入,填写新密码后点击确认
5)后台验证用户提交的验证记录是否存在,如果存在,修改密码
这里记录的是后台的这两个接口。
B. 准备工作
a. 阿里云短信服务账户,AccessKey、短信模板、短信签名等,还需要在账户中存一点点钱或者买短信包。
b. 阿里云短信官方API 短信服务 > API参考 > 发送短信 > SendSms
C. 实现
- 依赖:
<!-- 阿里云验证码使用SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
- 配置信息:
- 获取验证码接口:
@PreAuthorize("@el.check('anonymous')")
@GetMapping("/sendMsg/{phone}")
public String sendMsg(@PathVariable(