1,先发短信
2,给手机号设置一个标识,为的是不允许重复发送,我用的是前后端分离的项目,所以代码中不会返回404,500,之类的。
@PostMapping("/sendSms")
public ResponseEntity<Object> sendSms(@RequestBody User user){
String mobile = user.getMobile();
String code = GetRandomCodeUtil.getNumber();
String temp = redisTemplate.opsForValue().get(mobile);
if (temp!=null){
BaseResult br = new BaseResult(1, "验证码在30分钟内只能发送一次");
Map<String, Object> map = new HashedMap();
map.put("data", br);
return ResponseEntity.ok(map);
}
try {
SmsUtil.sendSms(mobile,code);
// 不能重复发送 给手机号做一个标识
redisTemplate.opsForValue().set(mobile,"temp",30,TimeUnit.MINUTES);
} catch (ClientException e) {
e.printStackTrace();
}
redisTemplate.opsForValue().set(mobile,code,30,TimeUnit.MINUTES);
return null;
}