工业级PaaS云平台8.9 关于注册邮箱验证码防刷设计方案你能想到几个
简介:注册邮箱验证码防刷方案你能想到几个
-
需求:一定时间内禁止重复发送邮件,大家想下有哪几种实现方式
-
方式一:前端增加校验倒计时,不到60秒按钮不给点击
- 简单
- 不安全,存在绕过的情况
-
方式二:增加Redis存储,发送的时候设置下额外的key,并且60秒后过期
-
非原子操作,存在不一致性
-
增加的额外的key - value存储,浪费空间
-
-
/** * 前置:判断是否重复发送 * * 1、存储验证码到缓存 * * 2、发送邮箱验证码 * * 后置:存储发送记录 **/
- 方式三:基于原先的key拼装时间戳
- 好处:满足了当前节点内的原子性,也满足业务需求