为登录加上 第二重验证。
通过 SMS、WhatsApp、语音和电子邮件发送一次性验证码,确认登录、密码重置、付款和敏感账户变更。Bird Verify 负责验证码生成、哈希存储、过期计时、渠道回退和暴力破解锁定,你的团队无需再维护 OTP 数据库表,也无需排查延迟到达的登录验证码。
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
您的账户
请确认是您本人。
请输入验证码,验证码已发送至
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
您的账户
请确认是您本人。
请输入验证码,验证码已发送至
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
您的账户
请确认是您本人。
请输入验证码,验证码已发送至
+1 ••• ••• 4567
验证登录和升级验证操作,无需管理 OTP 状态。
自行构建双因素身份验证,通常需要维护数据库表来存储哈希验证码、有效期、重新发送冷却时间和失败尝试计数器。使用 Bird Verify API,你的应用会在用户登录、重置密码或批准付款时发送验证码,然后直接根据其电话号码或电子邮件地址核验提交的验证码。会话存储无需在步骤之间保存验证 ID;当验证码本身就是凭据时,同一流程也支持无密码登录。
Bird 如何让双因素登录既快速又安全。
跨渠道可靠送达,内置防护,抵御验证码猜测和流量欺诈。
- 01
密码校验通过时触发,输入验证码时确认。
用户密码校验通过,或开始付款、更改电子邮件等敏感操作时,立即请求验证码,然后核验用户提交的数字。验证码延迟时再次调用发送端点,会在当前有效的验证上重新发送,不会使已在途中的验证码失效。
- 02
通过 SMS、WhatsApp、语音或电子邮件触达用户。
运营商过滤导致 SMS 延迟,或出行用户没有蜂窝信号时,避免用户被锁定在外。通过 SMS、WhatsApp 或语音电话将验证码发送到电话号码,或利用现有联系信息将验证码发送到电子邮件地址。
- 03
无需部署即可更新渠道路由和过期规则。
在工作区中一次性配置按国家设定的渠道顺序、验证码长度和有效期,适用于登录、密码重置和升级验证。客户报告登录失败时,每次验证的发送日志会显示使用了哪个渠道,以及验证码是否已送达、输错或过期。
- 04
阻止暴力猜测和 SMS 流量欺诈。
强制执行尝试次数限制,多次猜错后验证码即失效;同时按收件人设置发送上限,防止攻击者或机器人通过反复请求重新发送耗尽你的消息预算。
为登录处理程序添加第二重验证。
校验用户密码后发送验证码,并在用户提交第二重验证表单时核验数字。核验响应会告诉你的应用验证码是否匹配、输错后还剩几次尝试,或是否已过有效期,方便你清楚地提示用户。
// Send the second factor once the password checks out.
await bird.verify.verifications.create({
to: { phone_number: user.phone },
}).safe();
const { data, error } = await bird.verify.verifications.check({
to: { phone_number: user.phone },
code: submitted,
}).safe();
if (error) throw error;
if (data.success) grantSession(user);
规模扩展
不失控。
在工作区中组织团队,控制 API 访问权限,通过审计日志追踪变更。
组织
Harbor
访问权限仅限于其所在工作区。
生产环境/API 密钥
注册服务
活跃Alex Lee
管理员
今天 · UTC
审计日志
组织
Harbor
访问权限仅限于其所在工作区。
生产环境/API 密钥
注册服务
活跃Alex Lee
管理员
今天 · UTC
审计日志
组织
Harbor
访问权限仅限于其所在工作区。
生产环境/API 密钥
注册服务
活跃Alex Lee
管理员
今天 · UTC
审计日志