Bird Verify
L<highlight>API di verifica</highlight> senza nulla da memorizzare.
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;
Due chiamate da npm install a un utente verificato
Invia un codice, poi verificalo, nel linguaggio che già utilizzi.
Create-or-retry invia il codice; check lo conferma per destinatario. Due chiamate, senza alcun id di verifica da passare tra le due.
const verification = await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);Dieci cose che non devi costruire
quando la verifica è l'API.
Primitive concrete, con nome e configurabili. Nessuna vaghezza.
- 01
Crea o riprova in una sola chiamata.
Reinviate lo stesso destinatario e riprendiamo la sessione attiva, reinviando una volta scaduto il cooldown. Nessun endpoint di reinvio separato, nessuna verifica duplicata.
- 02
Verifica per destinatario. Non memorizzare nulla.
Inviate il destinatario e il codice; noi risolviamo la sessione dalla coppia configurazione-destinatario. Non c'è alcun id di verifica da persistere tra invio e controllo.
- 03
Email, SMS e WhatsApp al lancio.
Il destinatario che passi determina il canale: un indirizzo email verifica tramite email, un numero di telefono tramite SMS o WhatsApp. Cambiare canale significa modificare un solo campo, non una nuova integrazione. La voce è in arrivo, e il fallback automatico tra canali è in fase di sviluppo.
- 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
Codici che non vedrete mai.
Generato con una fonte crittografica casuale, memorizzato solo come HMAC, confrontato in tempo costante. Il codice in chiaro non tocca mai il vostro stack né i nostri log.
- 06
Codice, TTL e tentativi configurabili.
Six-digit default, 4–10 configurable per request; a 10-minute window; 5 attempts; a 60-second resend cooldown.
- 07
Ogni codice resta valido fino al termine della sessione.
Un messaggio in ritardo e un codice appena reinviato vengono entrambi verificati, perché non invalidiamo il codice precedente quando ne viene generato uno nuovo.
- 08
Un codice errato è un 200, non un'eccezione.
Verifica le risposte con un risultato booleano — il codice è stato verificato, sì o no — e un motivo che dettaglia quando non lo è stato: non valido, scaduto, già verificato o tentativi esauriti. La logica si basa su un campo, mai su un errore sollevato.
- 09
Rate limit integrati.
Limiti di invio per destinatario e limite di tentativi per verifica, ciascuno con un 429 e Retry-After, così il brute force si esaurisce prima di voi.
- 10
Stesso contratto del resto di Bird.
Auth Bearer, idempotency key, ID tipizzati vrf_, un unico envelope di errore. L'handler che avete scritto per l'email funziona già per la verifica.
Esplorate la piattaforma Verify
Ogni funzionalità nel dettaglio. Una sola API, un unico set di chiavi.
SMS OTP.
Codici monouso via SMS, con copertura globale e rate limit integrati.
Email OTP.
Verificate via email sulla rete che già gestisce le vostre email transazionali.
WhatsApp OTP.
Inviate codici su WhatsApp come canale ordinabile nello stesso piano.
OTP vocale.
In fase di rilascio: un codice vocale per telefoni fissi, accessibilità e utenti difficili da raggiungere.
Orchestrazione dei canali.
Per-country channel order, senders, and enable/disable, resolved automatically for every send.
Anti-abuso e sicurezza del codice.
Codici hashati, limiti per destinatario, blocco dopo tentativi falliti e roadmap antifrode.
Non memorizzate nulla tra invio e verifica.
La maggior parte delle API di verifica vi restituisce un id da persistere, cercare e usare per verificare il codice. Bird risolve la sessione dal destinatario, quindi non c'è alcuno stato per verifica dal vostro lato.
La maggior parte delle API di verifica
La creazione restituisce un id che salvate, poi cercate la verifica per confrontare il codice.
const { id } = await api.verifications.create({
to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });
Bird Verify
Verificate tramite destinatario. Non c'è nulla da collegare tra le due chiamate.
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;
La verifica è anche una decisione di prodotto: la stessa API supporta l'autenticazione a due fattori e il login senza password. Dovete prima validare un numero? Abbinatelo a Lookup. L'autenticazione silenziosa di rete e le app TOTP authenticator sono nella roadmap.
Perché costruiamo Verify
Perché il codice che fa accedere un utente non dovrebbe aver bisogno di una propria tabella nel database.
OTP è il canale dove un codice che non arriva è una registrazione che non avviene. Bird gestisce già email e SMS su larga scala, quindi Verify è quella delivery più la generazione del codice, la sessione, il piano canali per Paese e i rate limit, dietro due endpoint che non memorizzano nulla dal vostro lato e rispondono con la stessa struttura di ogni altro canale 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;
Se avete integrato SMS, avete integrato Verify.
Stesso modello di autenticazione, stesso contratto di idempotency, stesso envelope di errore. La differenza è che Verify genera il codice, sceglie il canale e gestisce i rate limit, così non dovete farlo voi.
Verify
Una chiamata invia il codice; una chiamata lo verifica per destinatario. Noi gestiamo il codice, la sessione e i limiti.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});SMS
L'invio diretto, per quando vuoi gestire in autonomia la generazione del codice e la policy di retry.
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your code is ${code}.`,
category: "authentication",
});Scegli il mittente che vedono i tuoi utenti
I codici vengono inviati con Bird Verify per impostazione predefinita, senza che registrazioni o configurazioni di template si frappongano. Passa a Authifly su un canale e i tuoi utenti vedranno un'identità di verifica neutrale anziché un fornitore di piattaforma: l'email OTP arriva da otp@verify.authifly.com e l'SMS mostra il mittente Authifly ovunque il Paese di destinazione consenta un mittente personalizzato. Bird gestisce entrambe le identità, quindi la scelta non comporta costi aggiuntivi e puoi configurarla per canale e per Paese. Per l'email puoi andare oltre e inviare da un dominio che hai verificato personalmente. Se un destinatario riceve un codice inatteso, authifly.com lo rassicura che Authifly invia codici monouso legittimi per conto di un'azienda. Authifly è gestito da Bird B.V.
Visita authifly.comLa verifica sulla stessa piattaforma del resto della tua messaggistica.
Inizia a sviluppare oggi stesso, oppure parlaci dei canali, dei volumi e dei prezzi di cui hai bisogno.