Bird Verify
API weryfikacji, w którym nie musisz niczego przechowywać.
Send a one-time code over email, SMS, or WhatsApp, then check it by recipient, with no verification id to keep between the two calls. The channel order, sender, and code rules already resolve per country automatically. Same auth and idempotency as every other Bird channel, because the same team built them all. Voice is rolling out next.
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;
Dwa wywołania od npm install do zweryfikowanego użytkownika
Wyślij kod, a następnie sprawdź go — w języku, którego już używasz.
Create-or-retry wysyła kod; check potwierdza go po odbiorcy. Dwa wywołania i żaden identyfikator weryfikacji do przekazywania między nimi.
const verification = await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);Dziesięć rzeczy, których nie budujesz,
gdy weryfikacja jest w API.
Konkretne elementy, nazwane i konfigurowalne. Żadnego zamydlania oczu.
- 01
Utwórz lub ponów jednym wywołaniem.
Wyślij ponownie tego samego odbiorcę, a my wznowimy aktywną sesję i wyślemy kod po upływie cooldownu. Bez osobnego endpointu ponownego wysyłania, bez zduplikowanych weryfikacji.
- 02
Sprawdzaj po odbiorcy. Nie przechowuj niczego.
Prześlij odbiorcę i kod; my rozwiążemy sesję na podstawie pary konfiguracja–odbiorca. Nie ma identyfikatora weryfikacji do przechowywania między wysłaniem a sprawdzeniem.
- 03
E-mail, SMS i WhatsApp na start.
Przekazany odbiorca determinuje kanał: adres e-mail oznacza weryfikację przez e-mail, numer telefonu — przez SMS lub WhatsApp. Zmiana kanału to zmiana jednego pola, a nie nowa integracja. Wkrótce pojawi się obsługa połączeń głosowych, a automatyczny fallback między kanałami jest w przygotowaniu.
- 04
Per-country channel order, already resolved.
Channel order, sender, and which channels are on differ by country. Bird's per-country base decides this, so a create call already resolves to the right plan everywhere.
- 05
Kody, których nigdy nie widzisz.
Generowany z kryptograficznego źródła losowego, przechowywany wyłącznie jako HMAC, porównywany w stałym czasie. Kod w postaci jawnej nigdy nie trafia na Twój stos ani do naszych logów.
- 06
Konfigurowalny kod, TTL, liczba prób.
Six-digit default, 4–10 configurable per request; a 10-minute window; 5 attempts; a 60-second resend cooldown.
- 07
Każdy kod pozostaje ważny aż do zakończenia sesji.
Opóźniona wiadomość i świeżo wysłany ponownie kod — oba weryfikują, ponieważ nie unieważniamy wcześniejszego kodu po wygenerowaniu nowego.
- 08
Błędny kod to 200, nie wyjątek.
Sprawdzaj odpowiedzi za pomocą wyniku logicznego — czy kod został zweryfikowany, tak lub nie — oraz powodu, który wyjaśnia niepowodzenie: nieprawidłowy, wygasły, już zweryfikowany lub wyczerpane próby. Rozgałęziasz logikę na podstawie pola, nigdy na podstawie rzuconego błędu.
- 09
Wbudowane limity częstotliwości.
Limity wysyłek per odbiorca i limit prób per weryfikacja — każdy jako 429 z Retry-After, więc brute force wyczerpie się, zanim Ty się wyczerpiesz.
- 10
Ten sam kontrakt co reszta Bird.
Autoryzacja Bearer, klucz idempotentności, typowane identyfikatory vrf_, jedna koperta błędów. Handler, który napisałeś dla e-maila, pasuje też do weryfikacji.
Poznaj platformę Verify
Każda funkcjonalność w szczegółach. Jedno API, jeden zestaw kluczy.
SMS OTP.
Jednorazowe kody przez SMS z globalnym zasięgiem i wbudowanymi limitami częstotliwości.
E-mail OTP.
Weryfikuj przez e-mail w sieci, która już obsługuje Twoją pocztę transakcyjną.
WhatsApp OTP.
Wysyłaj kody przez WhatsApp jako konfigurowalny kanał w tym samym planie.
Głosowe OTP.
W trakcie wdrażania: kod odczytywany głosowo dla telefonów stacjonarnych, dostępności i trudno dostępnych użytkowników.
Orkiestracja kanałów.
Per-country channel order, senders, and enable/disable, resolved automatically for every send.
Ochrona przed nadużyciami i bezpieczeństwo kodów.
Hashowane kody, limity per odbiorca, blokada po nieudanych próbach i plan rozwoju ochrony przed oszustwami.
Nie przechowuj niczego między wysłaniem a sprawdzeniem.
Większość API weryfikacji zwraca identyfikator, który musisz zapisać, wyszukać i przesłać kod do porównania. Bird rozwiązuje sesję na podstawie odbiorcy, więc po Twojej stronie nie ma żadnego stanu per weryfikacja.
Większość API weryfikacji
Create zwraca identyfikator, który zapisujesz, a potem wyszukujesz weryfikację, żeby sprawdzić kod.
const { id } = await api.verifications.create({
to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });
Bird Verify
Sprawdzaj po odbiorcy. Nie musisz przekazywać niczego między dwoma wywołaniami.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
// no id to store; check by the same recipient
await bird.verify.verifications.check({
to: { phone_number: "+15551234567" }, code,
}).safe();
Routing already knows the country.
Channel order, senders, and which channels are on differ by country: WhatsApp-first in one market, SMS-only in another. Bird's per-country base decides this, so a create call already resolves to the right plan. See channel orchestration.
// Brazil already resolves WhatsApp, then SMS.
const { data, error } = await bird.verify.verifications.create({
to: { phone_number: "+5511998765432" },
}).safe();
if (error) throw error;
Weryfikacja to również decyzja produktowa: to samo API obsługuje uwierzytelnianie dwuskładnikowe i logowanie bez hasła. Najpierw walidujesz numer? Połącz to z Lookup. Ciche uwierzytelnianie sieciowe i aplikacje TOTP są w planie rozwoju.
Dlaczego budujemy Verify
Bo kod, który wpuszcza użytkownika, nie powinien potrzebować własnej tabeli w bazie danych.
OTP to kanał, w którym kod, który nie dotrze, to rejestracja, która się nie wydarzy. Bird już obsługuje e-mail i SMS na dużą skalę, więc Verify to ta sama dostarczalność plus generowanie kodu, sesja, plan kanałów per kraj i limity częstotliwości — za dwoma endpointami, które nie przechowują niczego po Twojej stronie i odpowiadają w tym samym formacie co każdy inny kanał Bird.
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;
Jeśli zintegrowałeś SMS, zintegrowałeś Verify.
Ten sam model uwierzytelniania, ten sam kontrakt idempotentności, ta sama struktura błędów. Różnica polega na tym, że Verify generuje kod, wybiera kanał i zarządza limitami częstotliwości — więc Ty nie musisz.
Verify
Jedno wywołanie wysyła kod, drugie sprawdza go po odbiorcy. Kod, sesja i limity są po naszej stronie.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});SMS
Surowe wysyłanie — gdy chcesz samodzielnie kontrolować generowanie kodu i politykę ponownych prób.
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your code is ${code}.`,
category: "authentication",
});Wybierz nadawcę, którego widzą Twoi użytkownicy
Kody są domyślnie wysyłane przez Bird Verify i nie wymaga to rejestracji ani konfiguracji szablonów. Przełącz kanał na Authifly, a Twoi użytkownicy zobaczą neutralną tożsamość weryfikacyjną zamiast nazwy dostawcy platformy: e-mail z OTP przychodzi z adresu otp@verify.authifly.com, a SMS wyświetla nadawcę Authifly wszędzie tam, gdzie kraj docelowy zezwala na nadawcę markowego. Bird obsługuje obie tożsamości, więc wybór nie wiąże się z żadnymi dodatkowymi kosztami — dokonujesz go per kanał i per kraj. W przypadku e-maila możesz pójść dalej i wysyłać z domeny, którą samodzielnie zweryfikujesz. Jeśli odbiorca otrzyma nieoczekiwany kod, strona authifly.com zapewni go, że Authifly wysyła legalne kody jednorazowe w imieniu firmy. Authifly jest operowany przez Bird B.V.
Odwiedź authifly.comWeryfikacja na tej samej platformie co reszta Twojej komunikacji.
Zacznij budować już dziś lub porozmawiaj z nami o kanałach, wolumenie i cenach, których potrzebujesz.