先说结论
先停止重复发送,等待页面倒计时结束,再申请一次验证码,并且只输入这一次请求收到的最新验证码。旧验证码即使数字正确,也可能已经失效。
Code Expired和Code Invalid有什么区别?
Code Expired表示验证码已超过有效时间,或者在你重新请求验证码后,之前的验证码已经失效。Code Invalid通常表示输入的验证码不属于当前这次登录请求、输入有误,或者验证码与当前会话不匹配。
为什么验证码明明正确,还是显示过期?
- 你连续点击了多次重发,后来的请求让旧验证码失效。
- 验证码送达较慢,输入时已经超过有效时间。
- 同时在多台设备或多个客户端请求验证码,拿错了对应批次。
- 复制时带入空格,或输入了另一条官方消息里的旧验证码。
正确处理顺序
- 先停止反复点击重发,也不要同时在多台设备尝试。
- 留在当前登录页面,等待倒计时完整结束。
- 使用Telegram官方客户端,只在一台设备重新请求一次。
- 查看页面实际提供的接收方式,并只输入最新收到的验证码。
- 如果仍然报错,暂停一段时间后再试,不要用连续请求测试账号。
Telegram官网是怎么说明的?
我们现在看Telegram官方技术文档:登录接口明确列出了 PHONE_CODE_EXPIRED 和 PHONE_CODE_INVALID 两种错误;验证码还会和本次请求返回的 phone_code_hash 配对。用大白话说,验证码不仅要“数字正确”,还必须属于当前这一次登录请求。
官方认证资料:auth.signIn错误说明、Telegram登录验证机制、Telegram FAQ。
怎样减少再次遇到?
保持绑定手机号长期可控,开启两步验证并设置自己控制的恢复邮箱;保留一台安全可信的个人设备登录。恢复邮箱、二维码登录和通行密钥作用不同,不能保证你可以自由选择验证码发送渠道。