开发过。
零、准备工作:
1)购买消息服务产品——106三网短信
2)构建maven工程,依赖短信jar包
3)配置配置文件,其中:唯一的APPCODE、tpl_id使用默认模板即可
4)下载短信工具类
5)搭建用户注册三个maven模块工程user-interface、user-service、user-web
6)使用消息中间件提升性能,并让用户注册(user)与短信服务(sms)解耦
一、前端:
1)当用户点击获取验证码时,像后台发送请求,并携带电话号码给后台
二、user用户模块:
1)接收前端发送过来的电话号码,controller中首先调用工具类校验手机号码是否合法,然后调用service随机生成6位伪随机的数据;
2)将手机号码作为key,验证码作为值存储在redis中,并设置有效时间;
3)将电话号码、验证码(伪随机的6位数)封装在MapMessage中。mobile对应电话号码、code对应验证码,最后调用远程服务sms
三、sms短信模块:
1)过滤器拦截user模块发送的请求,转换message为MapMessage
2)通过key(mobile、code)获取电话号码,验证码
3)读取配置文件获取APPCODE,tpl_id
4)最后调用短信工具类完成短信的发送
四、完成注册
用户将获取到的验证码填入,发生注册请求。后台首先通过手机号码去redis中获取code,如果code不存在,表示该用户并没有获取过验证码,输入的验证码无效;如果存在,将输入的code与redis中获取的code进行比较,如果不相等,验证码输入有误,不能注册。否则注册成功。