讨论个短信验证码时效(或说失效时间)的问题

2016-08-11 06:55:50 +08:00
 zsen

昨晚喝了点酒,结果 4 点多一点就醒了,一直到现在睡不着……

不讨论短信下发延迟,以及短信平台哪家强的问题。

问一下你们的验证码短信失效时间是怎么定的?一般流程是点击发送验证码按钮后,会禁用按钮并做 60 秒倒计时,超时之后可以重新点击发送验证码。

我司目前的做法是,短信验证码的时效是 60 秒。也就是你第二次点击发送之后,会生成一个新的验证码。

这里面会遇到一个问题:短信下发延迟。也许你在使用短信验证码的时候,点了发送没反应,过了 60 秒再点,咦,收到了 2 条验证码,并且验证码不一样。该输入那个呢(有可能最后收到的反倒是已经失效的那个)?当然非要说一个一个试那也可以。。。

因此我建议服务器端生成验证码后,失效时间改为 180 秒,当 60 秒后用户重新点击,继续将当前的验证码下发给用户,这样就不会造成收到 2 次验证码不一致的小困扰了。

然而,我们技术同学没有同意(嗯,我就是攻城狮门所不齿的产品汪😄)

你们是怎么做的呢?

21604 次点击
所在节点    程序员
26 条回复
sarike
2016-08-11 10:36:46 +08:00
这次产品汪的要求是合理的。

给产品汪鼓掌……

function007
2016-08-11 10:40:49 +08:00
@elgoog1970 180ms...doge
cnZary
2016-08-11 10:41:28 +08:00
@elgoog1970 ms 是毫秒....
realpg
2016-08-11 11:03:13 +08:00
一般来说 我比较喜欢如下设定
JS 限制重新发送间隔 60 秒
后台限制重新发送间隔 45 秒
验证码写入 redis 队列,有效期 300 秒
如果上个验证码没有被消费,那么再次读取延长验证码有效期 300 秒,仍然用原来的验证码
如果之前用户有后台验证输入失败的记录,那么再次请求下发新验证码无视 300 秒有效期剩余量重新生成新的
yexiaoxing
2016-08-12 02:28:50 +08:00
@elgoog1970 180ms... 我手机还没打开就过期了
jlj224
2016-11-30 15:31:43 +08:00
这种验证码一下收到两条属于你手机的问题。一般来说因为第一条丢失了,发送了第二条又激活了第一条。我们用的是 SUBAMIL http://submail.cn/ 验证码到达速度很利索。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/298533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX