Bird Verify
API weryfikacji, w którym nie musisz niczego przechowywać.
Wyślij jednorazowy kod przez e-mail, SMS lub WhatsApp, a następnie zweryfikuj go po odbiorcy — bez konieczności przechowywania identyfikatora weryfikacji między dwoma wywołaniami. Kolejność kanałów, nadawca i reguły kodu są już automatycznie rozstrzygane dla każdego kraju. Ta sama autoryzacja i idempotentność jak w każdym innym kanale Bird, ponieważ ten sam zespół zbudował je wszystkie. Obsługa głosowa jest wdrażana jako następna.
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;
Your account
Confirm it’s you.
Enter the code sent to
+1 ••• ••• 4567Example verification code
Zaufanie zespołów, które tworzą oprogramowanie najwyższej klasy
Poznaj więcej historii klientówDwa 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.
The recipient you pass picks the channel: an email address verifies by email, a phone number by SMS or WhatsApp. Switching channels is a one-field change, not a new integration. Delivery failure can advance the verification to the next available channel. Voice is rolling out next.
- 04
Kolejność kanałów w podziale na kraj — już rozstrzygnięta.
Kolejność kanałów, nadawca i dostępne kanały różnią się w zależności od kraju. Baza Bird w podziale na kraj decyduje o tym automatycznie, więc wywołanie create od razu rozstrzyga właściwy plan w każdym miejscu.
- 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–8 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.
Kolejność kanałów, nadawcy oraz włączanie/wyłączanie w podziale na kraj — rozstrzygane automatycznie przy każdym wysyłaniu.
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 już zna kraj.
Kolejność kanałów, nadawcy i dostępne kanały różnią się w zależności od kraju: WhatsApp jako pierwszy na jednym rynku, wyłącznie SMS na innym. Baza Bird w podziale na kraj decyduje o tym automatycznie, więc wywołanie create od razu rozstrzyga właściwy plan. Zobacz orkiestracja kanałów.
// 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.comWyślij pierwsze żądanie, zanim napiszesz choćby linijkę kodu.
Całe publiczne API to kolekcja Postman, skonwertowana z tej samej specyfikacji OpenAPI, z której generowane są SDK, z przykładowym żądaniem i odpowiedzią na każdym endpoincie. Zforkuj ją do własnego obszaru roboczego, ustaw klucz API i wyślij żądanie na żywo.
Zastosuj w praktyce.
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Weryfikacja 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.