跳到主要内容
纸飞机教程

Telegram 什么时候会再跟你要一次验证码?哪些动作会触发、哪些不会

用久了,很多人心里会冒出这个疑问:它怎么老跟我要验证码?

明明前几天刚填过,今天我在这台电脑上开一下,又要一次。或者在网页上登了一下,过两天再打开,又要一次。

这种感觉很像"它不信任我"。而如果你不知道背后的规则,就会觉得它是在随机地找麻烦。

但它的规则其实很清楚,而且只有一条。这条规则一讲明白,"哪些操作要验证、哪些不要"这件事就不用背了——你可以自己推。

一个统一的原理:它手里有两把钥匙

要理解什么时候会被再要一次验证码,只要先问一个问题:它凭什么相信"你就是那个人"?

答案是它手里有两样东西。

第一样是你正在用的那条会话。

你在这台设备上登录过,它就给你留了一条"已经登录好"的状态。之后你用这台设备,它不再问你——因为它记得你进来过。

这一点我在别的文章里说过,那条会话本身就是一张通行证。能拿着它,就能做你账号能做的事。

第二样是那个手机号。

如果你手里没有会话,那它唯一的办法就是:给你那个号码发一条码,看你能不能收到。能收到,就说明那个号还在你手上。

所以触发验证码的条件就只有一条:会话这一头出了问题。

用它的话说:只要你是在"用已有的钥匙",它就不问;只要你是在"要一把新钥匙",它就要你证明一次。

记住这一句,下面那些情况你都能自己推出来。

会触发的:凡是"新增一把钥匙"

按上面那条原理,会要验证码的操作,都是"新增一个入口"的。

第一,在新设备上登录。

这是最常见的一种。你在新手机上装、在另一台电脑上装、用网页版打开——这些设备上都没有会话,所以它必须让你证明一次。

所以这一类可以叫"换设备验证":换设备 = 没有旧会话 = 要新钥匙。

第二,登出之后重新登录。

登出这个动作的意思就是"我把这条会话停了"。既然停了,那就回到没有钥匙的状态,下次进去当然要重新证明。

第三,会话被终止之后。

不管是你自己踢掉的、还是因为太久没用被系统终止的,结果都一样——那条通行证没了。所以下次要重新走一遍验证。

第四,改两步验证密码。

这一条我想单独说一下,因为它是很多人最想不通的一条。

大家的思路是:我明明已经在这台设备上登着,都能进设置里了,为什么改个密码还要我再收一次码?这不是多此一举吗?

要理解这个,得回到那条会话的性质上。

它的设计假设是:"已经登着"不等于"是本人"。

因为一条开着的会话可能正在被别人用着——你把手机借给过人、你的电脑没锁屏、或者你曾经把账号登在别的设备上忘了退。这些情况下,"能进设置"这件事本身就不可靠。

而改密码是一个敏感操作:它关系到你账号的备用钥匙。所以在这种操作上,它要再确认一次"那个号码还在你手上"。

换句话说:它不是在怀疑你,它是在防"那个正在用你账号的人不是你"。

这个道理和我另一篇里说过的是一回事——会话能做的事很多,所以敏感动作要额外证明一次。

第五,换绑手机号。

换绑动的是账号的根,所以通常是旧号和新号都要参与验证。这一类我在讲换绑的文章里写过,这里就不重复了。

至于还有没有别的操作也会要验证码——各个版本可能不完全一样,我没有一个统一的口径。但你可以用那条原理自己判断:这个操作是不是在新增一个入口,或者在改动账号的根部? 是,那多半就要验证。

不会触发的:凡是"用已有的钥匙"

反过来,下面这些日常操作,它通常不会跟你要验证码。

收发消息。 这是最基本的功能,你在会话里,它不会为每一条消息要一次证明。

在已登录的设备上查看和修改大多数设置。 隐私开关、通知、外观、语言这一类,改了就改了,不需要额外证明。

各种整理动作。 静音一个对话、归档、删除聊天记录、往收藏夹里存东西——这些都是"你这一侧"的操作,它不要求验证。

在多台已登录的设备之间切换。 你手机、平板、电脑都登着,来回用不会各自再要一次。

在群里发言、点表情、转发。 这些都在会话的保护范围里。

把这两组放在一起看,那条分界线就很清楚了:它要的从来不是"你证明自己有多认真",而是"你证明这个号码还在你手上"。 而这个证明,只在需要新发一把钥匙的时候才有意义。

那"为什么老要验证码"到底是怎么回事

讲到这里,开头那个问题就有答案了。

多半不是它老要,而是你那边的会话没保住。

会话这个东西不是永久的。它会因为几种情况消失:

一个是你自己把它结束了。比如你习惯用完就登出,那下次进去自然要重新验证。这个习惯没有对错,只是要知道它有代价。

一个是系统替你把它结束了。太久没活动会被终止,这是它的一种保护机制,那类时限我在讲登录状态的文章里写过。

一个是应用的本地数据被清了。这一点在网页版上最明显——网页版的登录状态是靠浏览器里的一份凭据维持的,你把浏览器的缓存和网站数据清掉,它也就掉了。所以很多人会遇到"我明明没登出,怎么又要了",答案往往在这里。关于网页版是怎么记住你的,我在另一篇里写过。

一个是你在好几台设备之间反复登录登出。每登出一次,下次就要一次,次数自然就上来了。

所以如果你觉得"老是"要,值得回头看一眼自己属于哪种情况。而如果你不希望它老要你,那处理办法也不是去怪它,而是少登出、别清掉那份凭据、把不用的会话在设备列表里终止而不是靠登出。

关于"要输几次才过"

还有一个常见的问题:验证码要输几次才过?

而这个问题的方向其实有点偏。因为它不是一道"试几次能过"的题——你收到的那条码本身是对的,问题通常出在别的地方。

我见过的情况里,最常见的三个原因是这样。

第一个是把旧的码填进去了。

码是有时效的,而且你前后可能收到过好几条。如果你手机上还挂着上一条,而你填的是它,那当然过不了。所以填之前看一眼时间,用最新的那条。

第二个是手工抄错。

尤其是从另一台设备上抄过来的时候,一个数字看错就全错。

第三个,也是最容易犯的一个:把码填到别的账号上了。

如果你同时登着两个号,或者你正在给另一个号注册,很容易把 A 号的码填到 B 号的界面里。这时候你会觉得"码明明是对的怎么不行"——因为它对,但它不是给这个号的。

而关于"输错太多次会怎样",那属于另一个话题:那涉及的是失败计数和限制,我在另一篇里专门写过,包括它为什么不公布一个固定的次数。这里就不重复了。

所以对这个问题,我的建议是:别把注意力放在"试几次",放在"这条码是不是最新的、是不是这个号的"。这两件事排掉之后,剩下的问题就只剩"能不能收到"了——而那又是另一个话题。

三个常被问到的

第一个问题:我换了新手机,旧手机上的登录要先终止吗?

不用。多台设备是可以并存的,所以你直接在新手机上登就行,不需要先动旧手机。

但登完之后建议做一件事:去设备列表里看一眼,把不再用的那台终止掉。因为不用的设备还挂着会话,就等于还开着一条入口。这一点我在讲换新手机的文章里写过。

第二个问题:网页版为什么比客户端更容易要验证码?

因为两者的登录状态保存方式不一样。

客户端的登录状态存在应用自己的数据里,相对稳;而网页版靠的是浏览器里存下的一份本地凭据。所以只要你清了浏览器缓存、换了浏览器、用了无痕模式、或者系统做了一次清理,那份凭据就没了,它自然要重新验证。

这也解释了那种"我明明没登出,怎么打开又要了"的情况——答案往往在浏览器那边。

第三个问题:我不想它这么快就要验证码,能改吗?

要分清楚两件事。

能改的是"会话多久不活跃会被终止",这个可以调。

改不了的是"什么时候要验证码"——因为它不是设置,而是机制:没有会话就要证明一次。

所以如果你觉得它老要,改设置帮不上太多;真正有用的是少登出、别让本地凭据被清掉。

几个常见的坑

第一个坑,是把验证码理解成"定时检查"。它不是定时的,它跟着"有没有新入口"走。

第二个坑,是疑惑改密码为什么要验证。因为它的假设是"已经登着不等于本人"。

第三个坑,是以为"我没登出就不该要"。应用本地数据被清掉也一样会掉,网页版尤其明显。

第四个坑,是拿前一条旧码去填,然后以为码失效了。

第五个坑,是把一个号的码填到另一个号上。同时用两个号的时候特别容易出这个错。

最后

如果只用三句话记住这篇,我希望是这三句。

它手里有两把钥匙:一条还开着的会话,和那个能收到码的手机号。所以触发验证码的条件只有一条——会话这一头出了问题。凡是"新增一把钥匙"的操作(新设备登录、登出后重登、被终止后重登、改密码、换绑号码),都会要;凡是"用已有的钥匙"的操作(收发消息、改设置、整理动作),都不会。

这里面最值得想通的是改密码为什么要验证:因为它的设计假设是"已经登着不等于本人"。它不是在怀疑你,而是在防"那个正在用你账号的人不是你"。

而如果你觉得它老是跟你要,多半不是它老要,而是你那边的会话没保住。常见的原因是反复登出、清掉了本地凭据(网页版最容易)、或者被系统终止了。至于"输几次才过"这个问题,方向应该换成:这条码是不是最新的,以及它是不是这个号的。

分享到: