注册邮箱验证码防刷方案

摘自小滴课堂 工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战笔记

需求

  • 一定时间内(例如一分钟内)禁止重复发送邮件

方式

前端增加校验倒计时, 不到60秒按钮不给点击

  • 实现简单
  • 不安全, 存在绕过的情况

增加 Redis 存储, 发送的时候设置下额外的 key, 并且 60 秒后过期

  • 非原子操作, 存在不一致性
  • 增加的额外的 key-value 存储, 浪费空间

流程

前置: 判断是否重复发送

1. 存储验证码到缓存
2. 发送邮箱验证码

后置: 存储发送记录

基于原先的 key 瓶装时间戳

  • 好处: 满除了当前节点的原子性,也满足业务需求

方案的大概实现

文章地址 --> 注册邮箱验证码功能开发

posted @ 2022-10-15 11:21  哨音  阅读(53)  评论(0编辑  收藏  举报