PHP 如何实现验证码每个手机每天发送次数的限制

发布于 2022-09-07 03:43:49 字数 43 浏览 18 评论 0

我接入了阿里云的短信,请问如何限制每个手机每天对验证码接收次数的限制呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

菩提树下叶撕阳。 2022-09-14 03:43:49

短信查询API(QuerySendDetails)---PHP

查看改手机号对应日期接受了多少条短信

嘴硬脾气大 2022-09-14 03:43:49

memcached/redis/数据库都能做到

根据手机号构造一个key,如手机号码-send-今天日期

  1. 发送之前读取这个key的值,如果大于等于设定的值,接口直接报错返回
  2. 发送验证码
  3. 将该key的值+1
情未る 2022-09-14 03:43:49

写在redis里面

花落人断肠 2022-09-14 03:43:49

推荐使用redis记录每天发送的日志,统计每日每个手机号发送验证的次数,超过限制次数不发。记得定时清理这部分日志。

当然也可以使用mysql去做,只是redis会快很多。

巾帼英雄 2022-09-14 03:43:49

使用缓存,redis为例,发送之前,比如你要限制每天发送次数,

  1. 写一个键为 手机号.日期 ,值为次数, 有效时间 24 小时, 的缓存
  2. 发送前验证检验 a.是否存在(配合当天日期) b.次数是否达到限制
  3. 符合条件发送, 让该缓存自增

要是你想复杂一点, 比如说:

10分钟内可以发5次,超过5次等待30分钟才能发送

  1. 写一个 手机号为键,值为次数的缓存,初始值为1, 10分钟的缓存
  2. 检测是否存在, 如果存在, 检测次数? 次数未达到最大值, 自增, 到了最大次数, 将缓存时间修改为30分钟
Spring初心 2022-09-14 03:43:49

注册的时候一秒钟内只能发送一次短信验证码差不多的逻辑

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文