当我们在输入 2FA 生成的验证码时,都会有一个倒计时,如果你看到时刚好还有 3 秒,你会不会很慌?或者是等 3 秒让他重新生成一个新的?
你有没有想过,如果你在倒数第 2 秒记住了 6 个数字验证码,那在输入完成到表单,再提交。这个验证码已经重新生成了,它是否还有效?如果真的有效,那有没有有效期?
按我的使用体验,就算重新生成了新的验证码,你刚才记住的上一个验证码也是有效的。
我只是想知道,上一个密码从生成到失效,有效期是多久?是可以自定义,还是固定的时间?
1
crab 2023-06-30 22:29:30 +08:00
验证的地方可能多判断前 30 秒后 30 秒的验证码吧。
|
2
billgong 2023-06-30 22:46:22 +08:00 4
TLDR 无所谓的
看一下 RFC6238 的第六章: https://datatracker.ietf.org/doc/html/rfc6238#section-6 客户端和服务端是允许有短暂的时差的。服务器可以接受阈值内(往前两个时间段)的过期的验证码,但第 5 章明确指出已经使用过的验证码是绝对不能再次接受的。 推荐的时间段是 30 秒,但标准不限制这个值 |
3
zjuster 2023-06-30 23:17:00 +08:00
我用的几个 2FA 超过时间就失效。
所以倒计时小于 10 秒的我就等 10 秒了。真的来不及。 |
4
mooyo 2023-06-30 23:19:06 +08:00
看你服务端的实现,一般来说为了用户体验会前后相差一个周期都是可接受的
|
5
deorth 2023-07-01 08:08:15 +08:00 via Android
不方,以我的手速,输入六位数字不到一秒
|