app端获取验证码接口 此处将随机验证码存到Redis中
@ApiOperation(value = "获取验证码")
@ApiImplicitParams({
})
@PostMapping("isCode")
public AjaxResult isCode(String phone) {
//生成随机4位验证码
String code = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
try {
String flag= SmsUtil.sendSms(phone, code);
}catch (Throwable e){
e.printStackTrace();
log.error("调用验证码接口失败");
return AjaxResult.error("调用验证码接口失败!");
}
log.info("验证码");
//使用手机号加验证码的方式,防止重复
ValueOperations<String, String> opsForValue = template.opsForValue();
opsForValue.set(phone+code, phone+code, 2, TimeUnit.MINUTES);
if (opsForValue.get(phone+code) == null) {
return AjaxResult.error("存入redis失败");
}
return AjaxResult.success();
}
注册接口
@ApiOperation(value = "注册")
@ApiImplicitParams({
})
@PostMapping("signUp")
public AjaxResult signUp(String username, String password, String phone ,String code) {
ValueOperations<String, String> opsForValue = template.opsForValue();
QueryWrapper<WeixinUser> userQueryWrapper = new QueryWrapper<>();
userQueryWrapper.eq("phone", phone);
WeixinUser user = weixinUserService.getOne(userQueryWrapper);
if(user!=null){
return AjaxResult.error("此手机号已注册");
}
if ((phone+code).equals(opsForValue.get(phone+code))) {
String password1=(Utility.QuickPassword(password));//密码加密
weixinUserService.insertUser(username,password1,phone);