A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

4.3 注册判断短信验证码4.3.1 实现思路
点击页面上的”获取短信验证码”连接,向后端传递手机号。后端随机生成 6 位数字作为短信验证码,将其保存在 redis 中(手机号作为 KEY),并发送到短信网关。
用户注册时,后端根据手机号查询 redis 中的验证码与用户填写的验证码是否相同,如果不同则提示用户不能注册。
4.3.2 生成验证码
(1)修改 pinyougou-user-interface 工程 UserService.java        ,增加方法
[AppleScript] 纯文本查看 复制代码
/**

*生成短信验证码

*@return

*/

public  void  createSmsCode(String  phone);
(2)修改 pinyougou-user-service 工程的 UserServiceImpl.java
[AppleScript] 纯文本查看 复制代码
@Autowired


private  RedisTemplate<String  ,  Object>  redisTemplate;
/**

* 生成短信验证码

*/


public  void  createSmsCode(String  phone){

//生成 6 位随机数

String  code  =    (long)  (Math.random()*1000000)+"";

System.out.println("验证码:"+code);

//存入缓存redisTemplate.boundHashOps("smscode").put(phone,  code);
//发送到 activeMQ  ....

}
(3)在 pinyougou-common        添加工具类 PhoneFormatCheckUtils.java,用于验证手机号
(4)修改 pinyougou-user-web 的 UserController.java
[AppleScript] 纯文本查看 复制代码
/**

*发送短信验证码

*@param  phone


*@return


*/ @RequestMapping("/sendCode")
public  Result  sendCode(String  phone){

//判断手机号格式
if(!PhoneFormatCheckUtils.isPhoneLegal(phone)){ return  new  Result(false,  "手机号格式不正确");
}


try {

userService.createSmsCode(phone);//生成验证码

return  new  Result(true,  "验证码发送成功");

}  catch  (Exception  e)  { e.printStackTrace();
return  new  Result(true,  "验证码发送失败");

}


}
(5) pinyougou-user-web 的 userService.js
[AppleScript] 纯文本查看 复制代码
//发送验证码

this.sendCode=function(phone){


return  $http.get("../user/sendCode.do?phone="+phone);


}
(5) pinyougou-user-web 的 userController.js
[AppleScript] 纯文本查看 复制代码
//发送验证码

$scope.sendCode=function(){


if($scope.entity.phone==null){

alert("请输入手机号!");

return ;


}
userService.sendCode($scope.entity.phone).success(


function(response){ alert(response.message);
}


);


}
(7)修改页面 register.html
[AppleScript] 纯文本查看 复制代码
<	a  ng-click="sendCode()"  >获取短信验证码</	a>


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马