如何限制用户访问短信接口的频率呢

来源:7-12 关于短信验证码预留的2个作业

无解的游戏

2020-04-10

如何限制用户访问短信接口的频率呢?

写回答

2回答

天经地义

2020-04-11

您可以存缓存,用手机号作为key,限制的时间为缓存有效期,下次要发送短信之前先看一下缓存是否有值,缓存没过期就不给继续发短信,缓存可改为redis,就是singwa老师说的第二种方法,大致demo如下

$phone = 13888888888;
$key = "sms-expires-{$phone}";
if (cache($key)) {
    // 这里是缓存有值,不允许发短信
}
SmsServices::send($phone); // 发送短信
Cache::set($key, true, 60); // 缓存60秒


6
2
静秋叶
妙啊,逻辑清晰
2022-01-02
共2条回复

singwa

2020-04-11

您好。老师给您一个大致的方向,有如下几种解决方案

1、在nginx + lua 可以控制接口的频率

2、再业务层 可以用redis来控制接口的频率。

初学者可以先用第二种来实现, 您先想想如果还想不明白的加老师扣沟通。。。

2
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1458 学习 · 1310 问题

查看课程