2015-03-04 5 views
5

Vorrei verificare i numeri di telefono degli account utente nella mia app Rails 4 (semplicemente inviando loro un numero pin di quattro cifre che faranno è necessario entrare nuovamente nell'app) - quali servizi sono disponibili e quali sono i meno fastidi da implementare in un'app Rails?Servizi (come Twilo, Plivo, Nexmo) per verificare i numeri di telefono nell'app Rails

Desidero verificare sia i numeri di cellulare che di rete fissa a livello internazionale, sebbene le mie aree principali siano l'Europa, gli Stati Uniti & Canada, Australia e Nuova Zelanda (che ho sede nel Regno Unito).

risposta

5

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?

+0

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

+1

@ 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). –

+0

Grazie Tim: conosci qualche guida o gemma per integrare Nexmo con un'app Rails? – A4J

1

Evangelista di sviluppatori Twilio qui.

È assolutamente possibile utilizzare Twilio (o uno qualsiasi di questi altri servizi) per verificare i numeri di telefono. C'è un good blog post here che spiega i passaggi che puoi seguire per eseguire una verifica telefonica via SMS.

Come si sta verificando anche per verificare i numeri di rete fissa, potrebbe essere necessario aggiungere anche la conferma vocale, dove si chiama un utente e si legge invece il codice a 4 cifre. Ciò può essere realizzato in modo simile, ma effettuando una chiamata in uscita al numero di telefono che legge il codice individuale utilizzando Twilio's text to speech <Say> verb.

Fammi sapere se questo aiuta a tutti. Anche io sono nel Regno Unito, quindi contattami se posso aiutarti ulteriormente.

+0

Grazie per le informazioni Phil - controllerò il link. Hai ancora un'offerta di avvio ($ 133,70 in credito Twilio) che Danielle menziona nel thread di Quora? Twilio sembra più costoso degli altri:/ – A4J

Problemi correlati