完善短信接口
短信发送的大体思路: 根据ip地址来控制短信的发送 每60S同一个ip只能发送一条短信 将ip拼接记录至redis中 发送短信时 判断ip是否存在 若存在 禁止发送短信
根据math.random来生成短信验证码 将double转为int可舍去小数点后的数 将验证码存储至redis中 登录时根据手机号和验证码匹配登录成功
将短信前缀和操作redis的对象抽出 因为登录或其他controller可能会用到 提高了代码的复用性
public class BaseController {
    @Autowired
    protected RedisOperator redisOperator;
    protected static final String MOBILE_SMS_CODE = "mobile_sms_code";
}
继承BaseController
@RestController
public class PassportController extends BaseController implements PassportControllerAPI {
    @Override
    public GraceJSONResult getSMSCode(@RequestParam  String mobile, HttpServletRequest request) {
        String userIp = IpUtil.getIp(request);
        redisOperator.setnx60s(MOBILE_SMS_CODE + ":" + userIp, mobile);
        String random = ((int)(Math.random() * 100000 * 8)) + "";
        // todo 发送短信
        redisOperator.set(MOBILE_SMS_CODE + ":" + mobile, random, 60 * 30);
        return GraceJSONResult.ok();
    }
}
    public GraceJSONResult getSMSCode(@RequestParam  String mobile, HttpServletRequest request) {
        String userIp = IpUtil.getIp(request);
        redisOperator.setnx60s(MOBILE_SMS_CODE + ":" + userIp, mobile);
        String random = ((int)(Math.random() * 100000 * 8)) + "";
        // todo 发送短信
        redisOperator.set(MOBILE_SMS_CODE + ":" + mobile, random, 60 * 30);
        return GraceJSONResult.ok();
    }
    虽然道路是曲折的,但前途是光明的。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号