无密码登录如何运作——一个验证码,同时完成登录与 WhatsApp 验证
WALLAWHATS 用同一个 6 位验证码同时完成登录和 WhatsApp 验证。本文讲清楚整个流程、它为何安全,以及与密码登录相比有何不同。

你曾经设置过的每一个密码,都是静静躺在某个数据库里的一份小小的隐患——可能是你自己的数据库,也可能是别人的。重复使用的密码、脆弱的密码、被钓鱼骗走的密码:大多数账户被盗,起点仍然是一个凭证,而不是什么零日漏洞。WALLAWHATS 干脆绕开了这整个问题——因为它从一开始就没有密码。登录和 WhatsApp 验证由同一套机制处理:向你可以掌控的目的地发送一个 6 位验证码。
这不只是体验上的一个捷径。它意味着,在你创建账户的那一刻,你也同时证明了自己拥有这个手机号或邮箱——而几秒钟后,关于 X(Twitter)动态的提醒就会送达这里。

“无密码”在这里究竟意味着什么
无密码验证并不是什么新概念——银行多年来一直在用短信验证码,大多数密码管理工具现在也在推着你使用魔法链接。WALLAWHATS 的实现方式不一样的地方在于:让你登入账户的那个一次性验证码,同时也验证了将来接收提醒的目的地。注册之后,你不需要再到设置里完成一个单独藏着的“确认手机号”步骤。归属权和可送达性,在同一个动作里就一起确立了。
具体流程是这样的:
- 你在登录界面输入一个邮箱地址或一个 WhatsApp 号码。
- WALLAWHATS 生成一个 6 位数字验证码,并发送到该目的地。
- 你在较短的有效期内,把验证码输回应用中。
- 验证成功后,你就登录了——如果这个目的地是手机号,它现在就是一个已验证、可以接收提醒的渠道。
不需要设置密码,不需要记住它、定期更换它,也不用担心它泄露。没有“忘记密码”流程,因为从来就没有密码可忘。
底层机制:Cognito 自定义认证,而非外挂的 OTP 库
在底层,这套流程运行在 AWS Cognito 的自定义认证(Custom Authentication)流程之上——而不是在传统的用户名/密码用户池上叠加一个第三方 OTP 插件。三个 Lambda 触发器协同工作,共同实现这一切:
- PreSignUp 会在新用户第一次使用此前从未出现过的目的地尝试登录时,自动确认这个新用户。这里没有单独的“创建账户”表单;用一个新邮箱或新号码登录,本身就是创建账户。
- CreateAuthChallenge 生成 6 位验证码,以较短的 TTL 保存在服务端,并将其发送到目的地——如果你输入的是手机号,就通过 WhatsApp 发送;否则通过邮件发送。
- VerifyAuthChallengeResponse 会将你输入的验证码与系统签发的验证码进行比对,拒绝过期或不匹配的尝试,并对重试进行限流。
因为这一切都运行在 Cognito 托管的认证状态机内部,标准的安全保证依然成立:令牌是短期有效的,刷新流程由保护整个平台其余部分的同一套基础设施处理;也不存在需要单独审计的自研会话令牌代码——那些困扰着“自己动手发个验证码就完事”式实现的常见问题(可预测的 ID、熵不足、缺失过期检查),这里都不存在。
为什么同一个验证码能顶两份工作
大多数服务把“证明你是谁”和“证明你能在这里收到消息”当作两个独立步骤——先用密码注册,再单独验证手机号以便接收通知。WALLAWHATS 把这两步合并了,因为对一款提醒类产品来说,这其实是同一个问题被问了两遍。
如果 WALLAWHATS 要把一条 WhatsApp 消息发送到某个号码,它需要确认两件事:这个号码是真实且可送达的,以及正在登录的这个人确实掌控着这个号码。把 6 位验证码发到这个具体号码、再由用户正确输入回来,这一个动作就同时回答了这两个问题。不存在“已登录但 WhatsApp 目的地未验证”这种情况,因为登录本身就是验证。
同样的逻辑也适用于邮箱。用一个邮箱地址登录,在那里收到验证码,再输回去——你现在登录了,而这个邮箱也成为了一个确认无误的邮件提醒目的地(在所有套餐下,邮件提醒都会在文字之外附带每条推文的渲染截图)。
为什么它比感觉上更安全
无密码认证听起来应该更不安全——没有密码,也没有密码库。但实际上,它堵住了真实账户被攻破的几种最常见途径:
- 不存在撞库攻击。 攻击者没有从某个被拖库的网站上找来的重复密码可以拿来试你的 WALLAWHATS 登录,因为从一开始就没有密码可偷。
- 不存在密码重置攻击面。 大量的账户被盗,都是通过“忘记密码”流程发生的——只要攻击者控制了你的邮箱,就能在所有地方重置你的密码。去掉密码,这整条攻击路径也就随之消失。
- 基于“持有”,而非基于“记忆”。 验证码证明的是你此刻能访问这个手机或邮箱,而不是你几个月前记住(或者写下来、或者重复使用)了某个秘密。
- 短效且一次性。 验证码很快就会过期,并且在成功使用一次后立即失效,这和一直有效、直到你手动修改才会变化的密码完全不同。
代价在于,WhatsApp 或邮件的送达能力,变成了你登录关键路径的一部分——如果你同时失去了这两者的访问权限,账户找回依然遵循同样的“已验证目的地”模型,而不是依赖“安全问题”这种在密码体系里历来最薄弱的后备方案。
与传统的“密码 + 单独 OTP 验证”相比
传统流程大致是这样的:设置一个密码,通过一封单独的邮件链接确认邮箱,之后再进入设置里,为短信或推送通知验证一个手机号。这是三个独立的验证点,也是三个可能过时、失效的地方——一个在账户里躺了好几周都没验证的手机号、一个和其他四个服务完全相同的密码、一个还没人点开就已经过期的邮箱确认链接。
WALLAWHATS 把这一切简化为每个目的地只需一个验证点。添加一个 WhatsApp 号码,你收到用来验证它的验证码,同时也是此后在这台设备上登录时所用的验证码。不存在悬而未决的“未验证”状态,因为账户和目的地是一起达到“已验证”的。
这也意味着,切换或新增一个目的地,其实就是……用一个新的目的地登录一次而已。想在 Business 或 Enterprise 套餐下添加第二个已验证号码?输入号码,收到验证码,确认即可。没有那种藏在三层菜单深处的单独“添加手机号”表单。
实际操作起来是什么样
在 wallawhats.com/signup 上,系统只会问你一件事:一个邮箱地址,或者一个 WhatsApp 号码。整个表单就这么多。
- 输入一个 WhatsApp 号码,验证码会在几秒钟内以 WhatsApp 消息的形式送达——而这正是之后承载你的 X 提醒的同一个渠道。
- 输入一个邮箱,验证码会落到你的收件箱里——如果你想在共享设备或工作设备上登录、又不想动用个人 WhatsApp,或者你打算把邮箱设为提醒渠道,这个方式就很合适。
不管选哪种方式,你都会看到一个要求输入 6 位验证码的界面,输入之后就直接进入仪表盘。从那里开始,你随时可以在 Channels 页面添加第二个渠道(比如先用邮箱注册,再补充一个 WhatsApp 号码,或者反过来)——每一个新目的地在能够接收提醒之前,都要经过同样的一次性验证码验证。如果你还不确定该用哪种类型的 WhatsApp 号码,我们的 Business 与 Personal 号码对比指南 详细讲解了两者的取舍。
账户设置里不存在一个手机号“已添加但未验证”的状态。每一个目的地要么完成了自己的验证码挑战,要么根本没有被绑定到你的账户上。
关于它不是什么,说明一下
准确地说,这套安全模型是:在你已经信任的渠道(WhatsApp、邮箱)上进行一次性验证码认证,而不是传统意义上“密码加第二因素”的多因素认证。两者之间有实质区别。传统 MFA 是在密码之上再加一个独立的第二重证明。而 WALLAWHATS 的模式,是用“持有某个通信渠道”取代了密码本身——这是一种不同的风险取舍,而不是在所有维度上都严格更强的方案。对于一款通知类产品来说,这恰恰是正确的取舍:因为它的核心前提本来就是,你必须先有一个已验证的目的地才能使用这个产品;把这个验证步骤复用到登录上,减少了摩擦,却没有削弱任何有意义的安全层级——因为一开始就不存在基于密码的那一层。
如果你还在纠结登录和提醒该用哪个渠道,我们的 邮件与 WhatsApp 对比 一文分析了送达速度和阅读率上的取舍——这些同样适用于登录验证码:WhatsApp 验证码你几秒钟内就会注意到;邮件验证码则要和你收件箱里的一堆邮件抢注意力。
这对一款提醒类产品为何格外重要
对于一款全部工作就是“把消息可靠送达你选定的目的地”的产品来说,身份和目的地绝不能出现偏差。如果登录和渠道验证是两套独立的系统,你就有可能登录进一个账户,而这个账户的 WhatsApp 号码是好几年前添加的,期间可能已被运营商重新分配给别人,却从未重新确认过。把登录和发往目的地本身的一个全新验证码绑在一起,意味着这种风险从架构上就不存在——你不可能通过一个当前不可达的渠道登录,因为可达性本身就是让你登录成功的原因。
这也意味着,在常见情况下,账户找回并不需要提交工单。手机丢了?改用邮箱登录就好——同样的流程,同样的一次性验证码,而你的 WhatsApp 目的地(一旦你在新设备上重新验证)会从原来的地方无缝接续。
验证码没有送达时会发生什么
任何把送达环节交给第三方网络——运营商、WhatsApp 自身的基础设施、邮件服务商——的系统,都必须考虑验证码没能立刻送达的情况。以下是这方面的一些实际处理方式:
- 有效期很短,这是刻意为之。 一个有效期以小时计的验证码,比一个只有几分钟有效期的验证码更容易被盯上。如果你的验证码在输入之前就过期了,重新申请一个会立刻让旧的那个失效。
- 重新发送,而不是反复重试同一个。 如果 WhatsApp 消息延迟了几秒钟(在发送高峰期属于正常现象),或者邮件被归到了垃圾邮件文件夹,登录界面会提供一个重新发送的操作,而不是让你无限期地等待第一次尝试。
- 限流机制保护双方。 对同一个目的地的重复验证码请求会被限流。这不仅是 WALLAWHATS 的防滥用措施——如果上游出现激进的重试,它也能防止单个账户不小心把 WhatsApp 或邮件服务商的送达系统打爆。
- 一个渠道不可达时,换一个。 如果你的手机没有信号,但你正在用笔记本电脑,那就改用邮箱登录——这是通向同一个账户的一条完全独立的路径,而不是要等 WhatsApp 那次尝试先失败才能启用的后备方案。
这些都不是 WALLAWHATS 独有的问题,而是任何基于 OTP 的系统都必须围绕设计的现实运营情况。不同之处在于:因为这个验证码同时也是你的渠道验证,一次成功的登录就等于告诉你,你的提醒目的地此刻是活跃可用的——而这一点,密码永远做不到。
常见问题
我可以同时用 WhatsApp 和邮箱登录吗? 可以。两者在第一次使用时都会被独立验证,此后用哪一个都能登录同一个账户。
如果我没完成登录,新申请的验证码会不会让我的 WhatsApp 渠道失效? 不会。一次未完成或已过期的登录尝试,不会影响一个已经通过验证的渠道——它只在首次验证一个新目的地时才有意义。
如果我以后想更换手机号怎么办? 在 Channels 页面把新号码添加为一个渠道即可;它需要经过自己的一次性验证码,之后才能接收提醒。旧号码会一直保留,直到你手动移除它为止。
这和基于短信的双因素认证是一回事吗? 不完全一样。传统的短信双因素认证,是在密码之上叠加的第二重因素。而在这里,验证码本身就是整个认证机制——它下面并没有一个密码,让你可以在其上再加一个第二因素。
开始使用
无密码登录不是一个需要单独配置的功能——从 Free 套餐往上,登录 WALLAWHATS 本来就是这么运作的。如果你还没有设置提醒,可以参考 我们的入门指南,它完整讲解了从第一次登录到收到第一条 WhatsApp 提醒的全过程。
再也不错过任何一条重要动态。 创建一个免费账户——1 个 WhatsApp 号码,实时提醒,无需信用卡。
About this article: This article was drafted with the help of an AI assistant using WallaWhats's editorial workflow, then reviewed and approved by Nacho Coll. Every product detail — plans, limits, and how alerts are delivered — is checked against the live WallaWhats service before it's published.

关于作者
Nacho Coll
Founder & Engineer at WallaWhats
Nacho founded WallaWhats so you get the alerts that matter without depending on X's algorithm to surface them — pick the accounts you care about and get a WhatsApp for every post the moment it goes live, in order, nothing throttled or buried. Writes about real-time notification systems, social-signal monitoring, and serverless delivery pipelines from the operator side of the wire.



