30分钟内不可以重复发短信

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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fhkkkbfgggjk/article/details/85043441
今日推荐