Il tuo titolo elenca tre principali API SMS, quindi per i servizi disponibili hai già una buona comprensione. Ma ci sono anche API che si focalizzano esclusivamente su 2FA/Verification. Ecco uno list of some, vale la pena notare che tende a concentrarsi sul lato utente dell'equazione (cose come Google Authenticator).
Dal vi chiedo circa la facilità di integrazione, un'API 2FA (invece di un'API SMS) può essere molto più facile (non c'è bisogno di essere preoccupato per la generazione di un OTP veramente casuale, o utilizzando fallback voce se il l'utente non risponde a SMS, ecc.).
Nexmo (Disclaimer: io vi lavorano.) In realtà offre sia API/Voice SMS, e una verifica API costruito sulla cima di queste API di livello inferiore.
Con la nostra Verify API (che sta per essere simile a prescindere dal API 2FA) che ci si effettua una chiamata al https://api.nexmo.com/verify/json
e passa lungo number
e brand
(per identificare l'app) parametri. La risposta conterrà un request_id
e una volta che l'utente avrà fornito l'app con lo code
, passerai sia lo request_id
e lo code
a https://api.nexmo.com/verify/check/json
.
Quindi sono 2 semplici chiamate API e nel frattempo si associa lo request_id
alla sessione dell'utente. Ecco uno quickstart on that process.
Con Nexmo in particolare, se passa abbastanza tempo senza la seconda chiamata API, il codice viene inviato di nuovo, questa volta con una chiamata vocale (o, se il numero è una linea fissa, inizia solo con la voce).
Con la nostra SMS API (ancora una volta, sarà simile a prescindere dal API) prima verrà generato un codice - che può sembrare apparentemente semplice, se la sicurezza è una preoccupazione è necessario assicurarsi che la generazione è veramente casuale.
Quindi si memorizza il codice e send an SMS.Con Nexmo, sarebbe una chiamata a https://rest.nexmo.com/sms/json
con il text
del tuo messaggio, lo to
e lo from
*. C'è anche un problema di sicurezza perché stai memorizzando il codice sullo stesso server che lo ha convalidato. Se questo è compromesso, anche il flusso di verifica è corretto.
Infine, si confronta il codice fornito dall'utente con il codice memorizzato.
Quindi il minimo problema dipende davvero da te. È più facile effettuare due chiamate API ed evitare la generazione/memorizzazione sicura del codice (e potenzialmente ottenere il fallback vocale gratuitamente)? Oppure fai da te la generazione del codice e riduci l'integrazione con una singola chiamata a un'API SMS?
Grazie Tim. Penso che l'API SMS per me sia soddisfacente. La mia unica preoccupazione sono i robot: cosa succede se si registrano e inseriscono numeri non validi e il sistema richiede la verifica: servizi come Nexmo si limitano a caricare solo SMS validi/consegnati? – A4J
@ A4J Sull'API SMS viene addebitato per ogni SMS (generalmente valido per tutte le API SMS). Se il numero stesso non è valido, non ti verrà addebitato nulla. Per Verifica, ti viene addebitata solo una verifica riuscita (l'utente fornisce il codice corretto). –
Grazie Tim: conosci qualche guida o gemma per integrare Nexmo con un'app Rails? – A4J