Verify 常见问题
如何在我的应用中接入验证功能?
只需两次调用:为收件人创建一个验证,然后校验其输入的验证码。校验基于收件人进行,因此无需在两次调用之间存储验证 ID:您只需要配置 ID(一个常量)和地址即可。
可以通过哪些渠道进行验证?
目前支持邮件、SMS 和 WhatsApp。语音正在作为额外渠道逐步上线。渠道顺序、发送方以及启用哪些渠道均可按国家/地区配置,无需更改代码。
我需要存储验证 ID 吗?
不需要。重新发送使用相同的创建调用(create-or-retry),校验基于收件人地址进行,因此验证无需在您这边维护任何请求级状态。如果您希望稍后查询状态,会返回一个 ID,但它是可选的。
我的用户看到验证码来自谁?
Bird 托管的两个身份之一,您可按通道选择:默认为 Bird Verify,或选择 Authifly。邮件发送地址为 otp@verify.bird.com、Authifly 的 otp@verify.authifly.com,或您自己的已验证域名;WhatsApp 则通过该身份对应的企业号码发送。SMS 在允许品牌发送方 ID 的国家/地区会将该身份显示为发送方 ID,在要求使用短代码或本地号码的国家/地区则使用相应号码。如果您不希望用户看到任何平台供应商信息,应选择 Authifly;authifly.com 是一个公开页面,向收件人说明 Authifly 代表企业发送合法的一次性验证码。Authifly 由 Bird B.V. 运营。
费用是多少?
Verify 目前尚未在公开价格表中列出。请联系我们,我们将为您详细介绍适合您渠道和用量的定价方案。
使用 Verify 需要额外付费吗?
不需要。Verify 没有套餐费或平台费。您只需按发送渠道的正常费率为每条验证码付费,仅此而已。
验证码校验的费用是多少?
免费。只有发送才计费;校验调用无论成功还是失败,始终免费。
如果发送回退到第二个渠道,我需要付两次费用吗?
是的,因为实际产生了两次发送:一次原始投递和一次回退投递,各按其所在渠道的费率计费。向同一渠道重新发送也同理。
验证码有几位?有效期多长?
默认为 6 位数字,有效期 10 分钟。两者均可配置:位数可设为 4 到 8 位,有效期最长约 16 小时。目前仅支持数字验证码。
输入错误的验证码会怎样?
The check returns 200 with success: false and a reason: incorrect_code while attempts remain, attempts_exhausted once they're spent, or expired once the window passes. A wrong code is a normal outcome you branch on.
用户有几次输入机会?
默认 5 次,可设置为 1 到 10 次。次数用尽后,验证将失败且该验证码作废,用户需要重新发起新的验证。
可以多久重新发送一次验证码给同一个人?
向同一收件人发送之间有冷却时间,默认 60 秒,最长可配置为一小时;同时还有每个收件人每小时的验证码发送总量上限。这两项限制旨在控制垃圾信息发送者或流量泵攻击可能给您造成的费用。
什么是 SMS OTP?
SMS 一次性验证码是通过短信发送到手机号码的一串短代码,用户将其输入以证明他们控制该号码。由于几乎所有手机都能接收 SMS,它是最广泛使用的二次验证和注册校验方式。
我可以覆盖哪些国家和地区?
SMS 通过 Bird 托管的共享发送方(Bird Verify 或 Authifly)发送。发送方 ID 规则因国家/地区而异:部分国家/地区允许使用品牌发送方 ID,其他国家/地区则要求使用短代码或本地号码。注册和专属发送方可随时间扩大覆盖范围。
你们如何防止 SMS 泵送和暴力攻击?
按收件人的发送上限和按验证的猜测次数限制已内置。更深层的欺诈信号检测和 SMS 泵送防护即将推出。
什么时候应该用邮件而不是 SMS 进行验证?
邮件验证不需要手机号码,任何有收件箱的人都能收到,因此非常适合作为注册和账户恢复流程的默认方式,也是在没有已验证手机号时的自然备选方案。许多产品同时提供两种方式,由用户自行选择。
我可以使用自己的域名发送吗?
是的。验证码默认从 Bird 托管的共享发送方发出(otp@verify.bird.com,如果您选择 Authifly 身份,则为 Authifly 的 otp@verify.authifly.com),您也可以切换到已在 Bird 中验证过的自有域名,这样验证码将从您自己的地址发出。
发送 OTP 前会检查屏蔽列表吗?
OTP 邮件属于事务性系统邮件,不受营销屏蔽列表的限制。投递由邮件管道异步处理,与其他事务性发送一致。
WhatsApp 验证现在可用吗?
是的。WhatsApp 作为首发渠道与电子邮件和 SMS 一同推出,是按国家/地区方案中的可订购条目,创建和校验调用无需更改。语音是仍在逐步推出的渠道。
为什么用 WhatsApp 而不是 SMS 进行验证?
WhatsApp 认证模板消息带有品牌标识,且会到达用户日常使用的应用中。在 WhatsApp 使用率高的市场,将其排在 SMS 之前,可以在用户偏好的渠道上与他们互动,同时 SMS 仍作为备用。
如果用户没有使用 WhatsApp 怎么办?
电话号码目标携带其完整的电话类渠道方案,因此 SMS 排在 WhatsApp 之后。随着基于投递状态的自动推进功能上线,WhatsApp 优先的验证会在同一会话中自动转移到 SMS,该会话中的每个验证码在验证成功、过期或用尽尝试次数之前始终有效。
语音验证现在可用吗?
正在逐步推出。电子邮件、SMS 和 WhatsApp 验证现已可用;语音将作为同一按国家/地区方案中的额外可订购渠道上线,创建和校验调用无需更改。
什么时候应该使用语音 OTP?
语音可以覆盖固定电话和无法接收 SMS 的用户,当短信未送达时也是强有力的回退方案。对于无法在屏幕上阅读验证码的用户,它也是更具无障碍性的选择。
语音如何与 SMS 配合?
两者都属于电话类渠道,使用同一号码。在渠道方案中排列顺序(通常 SMS 优先,语音作为回退),单次验证可从一个渠道切换到另一个,会话中的每个验证码始终有效。
我应该使用哪个渠道进行二次验证?
使用您已有的地址:手机号码通过 SMS 或 WhatsApp 验证,电子邮件地址通过邮件验证。按国家/地区配置可控制各市场的渠道顺序和发送方。
添加双因素认证意味着需要存储验证状态吗?
不需要。Bird 按收件人进行校验,因此您的登录处理程序发送验证码,然后用同一地址校验——无需在您一侧保存验证 ID 或待验证码记录。
无密码登录和双因素认证有什么区别?
双因素认证中,验证码是在密码之上的第二重证明。无密码登录则去掉密码,将验证码作为唯一凭证。两者使用的都是相同的 Bird Verify 发送-校验流程:区别仅在于是否有密码作为前置步骤。
没有密码的无密码登录安全性会降低吗?
它去掉的恰恰是最容易被攻击的凭证:密码会被重复使用、被钓鱼和被泄露。一次性验证码通过加密方式生成,仅以哈希形式存储,并受到尝试次数锁定和发送上限的保护,因此渠道的拥有权即是验证因子。
用户可以不输入验证码就登录吗?
这正是静默(运营商网络)认证的发展方向:通过移动网络确认手机号码,无需输入验证码。它已作为未来渠道设计进 Verify 模型中,因此后续采用时无需重新架构您的登录流程。
How does a verification resolve to a channel plan?
A create call resolves against Bird's per-country base: the channel order, senders, and code and TTL defaults Bird maintains from running email and SMS at scale. Per-request options such as channels or code_length can reorder or narrow that plan for a single call, and anything left unset comes from the per-country base. Per-country availability and the global kill-switch then cap what can appear on the resolved plan, which comes back on every response.
Bird 的国家/地区基础配置提供了什么?
A sensible starting point in every country without any setup: which channels are worth trying, which senders are allowed, and reasonable code defaults, maintained by Bird from years of running email and SMS. You build on top of it instead of rediscovering it.
我可以在 Bird 未在某个国家/地区提供的渠道上启用该渠道吗?
不可以。国家/地区的可用性是上限而非默认值:您只能启用 Bird 在当地支持的渠道。启用不可用的渠道将被忽略而非静默失败,因此配置方案永远不会承诺一个实际无法发送的渠道。
国家/地区是如何确定的?
在解析时根据收件人的 E.164 格式电话号码确定。您无需传入国家/地区参数;Bird 会自动识别并匹配相应的路由。邮件不受国家/地区限制。
验证码是如何生成和存储的?
使用加密随机源生成,仅以 HMAC-SHA256 哈希形式存储,并在恒定时间内进行比较。明文验证码永远不会通过 API 返回,也不会写入您的系统或我们的日志。
如何防止暴力破解验证码?
每个会话有有限的校验次数(默认 5 次),每次校验都在恒定时间内完成比较,因此计时攻击无法泄露信息。一旦次数用尽,会话即失败,攻击者无法继续猜测。
这些安全保护需要额外付费吗?
不需要。加密生成、哈希存储、恒定时间校验、尝试次数锁定和发送上限是每次验证的标准行为——没有需要购买的安全等级。
我的数据存储在哪里?
存储在您组织所在的区域,us1 或 eu1。您的 API 密钥在前缀中标明了区域(bk_us1_…、bk_eu1_…),SDK 和 CLI 据此自动选择正确的端点,无需您手动配置。
API 密钥实际能做什么?
仅限于您设定的权限范围。密钥包含一组权限范围,每项分为读取或写入,因此用于创建验证的密钥无需携带其他权限。您还可以将密钥绑定到一组 CIDR 地址范围,并设置宽限期(默认 24 小时)进行轮换,无需停机。
在哪里可以获取你们的安全和数据保护文件?
认证和安全文档位于信任中心 trust.bird.com。数据处理协议、隐私声明和可接受使用政策发布在 bird.com/legal。如需供应商调查问卷,请联系您的 Bird 客户团队处理。