这可能是我从业以来,调过的最离谱、也最令人窒息的一个逻辑 Bug。
就在昨天,我亲手把自己的 AI 账号(ChatGPT)搞丢了。不是因为被封号,也不是因为没续费,而是掉进了一个极其荒谬的密码修改陷阱。
1. 它是怎么“死”的?
事情的起因很简单:昨天突然想到账户里的数据很重要,但我从未改过初始密码,出于职业习惯,决定修改密码以加强安全。
但我怎么也没想到,这个操作成了我和它之间的“生死线”。
验证身份(发验证码) -> 验证通过 -> 设置新密码 -> 修改成功。
这时候,死循环出现了: 我这个账号用了四年多,最早绑定的那个邮箱因为各种原因,现在根本登录不上去(也无法找回)。
旧密码?系统说“已失效”,因为新密码已经覆盖了它。
新密码?系统说“未激活”,因为我没法点开那个验证链接。
就这样,旧的已死,新的未生。我被结结实实地锁在了门外。
2. 作为开发者的反思:逻辑漏洞还是暴力安全?
坐在电脑前愣了半小时,我职业病又犯了,开始拆解这个逻辑。
从安全角度看,“变更”不应该发生在“确认”之前。如果系统允许在没确认用户拥有邮箱所有权的情况下,就直接废掉旧密码,这本质上是在给用户挖坑。
我给官方写了一封很长的申诉信,理性地指出了这个流程缺陷。但在等待回复的这十几个小时里,我感受最深的是一种“数字资产瞬间清零”的荒谬感。
3. 我们的数字记忆,到底有多脆弱?
这四年里,这个账号里存了我无数次的代码审查记录、项目灵感、甚至是深夜里随手记下的碎碎念。它已经不是一个单纯的工具,更像是一个懂我思路的“数字分身”。
但我现在才意识到,这个分身的命脉,竟然只系在一个可能早已失效的邮箱地址上。
我想问的是:当一个用户能提供确切的注册时间、登录 IP、甚至能对出详细的聊天主题时,一个“收不到邮件的邮箱”,是否真的应该成为判定身份的唯一死刑官?
作为开发者,我们追求 Security(安全),但如果安全是以牺牲 Recoverability(可恢复性)为代价,那这种安全是不是跑偏了?
4. 碎碎念几句
目前我还在等官方申诉的结果。能找回固然好,找不回,这四年的积累就真的成了一场无声的告别。
别太迷信大厂的系统逻辑,Bug 往往藏在最基础的流程里。
检查一下你的绑定邮箱,确保那个“救命渠道”依然畅通。
别像我一样,修了一辈子的 Bug,最后在一个最简单的密码修改框里,弄丢了最默契的伙伴。