SMS OTP

通过 SMS 发送验证码。 按接收者校验。

接入方式:
Cursor

SMS 验证会向手机号码发送一次性验证码,并确认输入该验证码的人持有该号码。Bird 生成验证码、发送验证码、对每个接收者设置频率上限,并按接收者进行验证——无需存储 id,也无需对接重发接口。

verify.ts
200 · pending
import { 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;

SMS OTP 只需一次调用发送,一次调用校验。

SMS 是 Bird Verify API 上的电话类通道:提交一个包含电话号码的验证请求,我们会通过 Bird 托管的共享发送方发送验证码,默认使用 Bird Verify,也可选择 Authifly;然后通过同一号码进行验证。重新提交创建请求即为重发(创建或重试),会话中的每个验证码在验证通过、过期或尝试次数用尽之前均保持有效。

SMS 验证为您提供的功能。

内置功能,每次发送均生效。

  1. 01

    按手机号寻址。

    传入一个 E.164 格式的手机号,我们会自动规范化处理,并通过该号码所属国家对应的发送方以 SMS 发送。

  2. 02

    服务器生成的哈希验证码。

    默认生成 6 位验证码(可配置 4–10 位),使用加密随机源生成,仅以 HMAC 形式存储。您永远不会看到明文。

  3. 03

    重发即同一调用。

    60 秒冷却期过后,重新发送创建请求即可重发验证码:同一会话、新验证码,两个验证码均有效。无需单独的重发接口。

  4. 04

    内置按接收者频率限制。

    按接收者的发送上限可控制发送量,防止费用失控,超限时返回 429 并附带 Retry-After。

  5. 05

    覆盖范围按国家扩展。

    SMS 目前通过 Bird 托管的共享发送方(Bird Verify 或 Authifly)发送,在允许品牌发送方 ID 的国家/地区显示品牌标识,在有要求的地方使用短代码或本地号码;随着专属和注册发送方的上线,覆盖范围将进一步扩展。

完整流程,仅需两次调用。

创建或重试请求将验证码发送到手机号码;验证请求通过该号码进行确认。两者之间无需传递 id:接收者即为唯一标识。

sms-otp.ts
200
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;

// data.success is true or false; data.reason elaborates ("incorrect_code", "expired", "attempts_exhausted")

无需存储的验证 API。

SMS 是 Bird Verify 的渠道之一:电子邮件和 WhatsApp 随附提供,语音通道正在上线中,所有渠道共用同一组两个接口。

从一个渠道开始。
准备好后,再添加其他渠道。

测试 API 密钥即刻可用。添加支付方式并验证发送者身份后,即可解锁生产环境。

正在使用 Claude Code、Cursor 或 Codex?复制一条设置提示,您的智能代理即可自动安装 Bird CLI 和相关技能。选择您的工具:

Cursor