2015-03-04 5 views
5

Ich möchte die Telefonnummern von Benutzerkonten in meiner Rails 4-App überprüfen (indem ich ihnen einfach eine vierstellige PIN-Nummer sende) müssen in die App zurückkehren) - Welche Dienste sind verfügbar und welche sind am einfachsten in eine Rails App zu implementieren?Dienste (wie Twilo, Plivo, Nexmo) zur Überprüfung von Telefonnummern in der Rails-App

Ich möchte sowohl die Mobilfunk- als auch die Festnetznummer international verifizieren, obwohl meine Hauptgebiete Europa, die USA & Kanada, Australien und Neuseeland sein werden (ich habe ihren Sitz in Großbritannien).

Antwort

5

Ihr Titel listet drei Haupt-SMS-APIs auf, so dass Sie für verfügbare Dienste bereits ein gutes Verständnis haben. Aber es gibt auch APIs, die sich ausschließlich auf 2FA/Verifizierung konzentrieren. Hier ist eine list of some, erwähnenswert ist, dass es auf der Benutzerseite der Gleichung konzentriert ist (Dinge wie Google Authenticator).

Seit Fragen Sie über die einfache Integration, eine 2FA API (statt einer SMS API) kann viel einfacher sein (Sie müssen nicht besorgt sein über die Generierung eines wirklich zufälligen OTP oder Voice-Fallback verwenden, wenn Benutzer antwortet nicht auf SMS, usw.).

( Disclaimer: Ich arbeite dort.) bietet tatsächlich sowohl SMS/Voice-APIs, und eine Verify-API auf dieser unteren Ebene APIs gebaut.

Mit unserem Verify API (es wird ähnlich sein, unabhängig von der 2FA API) Sie einen Anruf https://api.nexmo.com/verify/json machen würden und gehen entlang number und brand Parameter (Ihre Anwendung zu identifizieren). Die Antwort enthält eine request_id, und sobald der Benutzer Ihre App mit der code bereitstellt, werden Sie sowohl request_id als auch code an https://api.nexmo.com/verify/check/json übergeben.

Es sind also 2 einfache API-Aufrufe und in der Zwischenzeit verbinden Sie die request_id mit der Benutzersitzung. Hier ist ein quickstart on that process.

Wenn genug Zeit ohne den zweiten API-Aufruf vergeht, wird der Code erneut gesendet, dieses Mal mit einem Sprachanruf (oder, wenn die Nummer eine Festnetzleitung ist, beginnt sie einfach mit Sprache).

Mit unserem SMS API (auch hier wird unabhängig von der API ähnlich sein) zuerst müssen Sie einen Code generieren - die täuschend einfach klingen mag, wenn Sicherheit ein Anliegen ist, müssen Sie sicherstellen, dass die Generation wirklich ist zufällig.

Dann speichern Sie den Code und send an SMS.Bei Nexmo wäre das ein Anruf an https://rest.nexmo.com/sms/json mit dem text Ihrer Nachricht, dem to und dem from *. Es gibt auch Sicherheitsbedenken, da Sie den Code auf demselben Server speichern, wie er ihn überprüft. Wenn dies kompromittiert ist, ist auch der Überprüfungsfluss.

Schließlich werden Sie den vom Benutzer bereitgestellten Code mit dem Code vergleichen, den Sie gespeichert haben.

So der geringste Aufwand hängt wirklich von Ihnen ab. Ist es einfacher, zwei API-Aufrufe durchzuführen und die sichere Generierung/Speicherung von Code zu vermeiden (und möglicherweise einen kostenlosen Voice-Fallback zu erhalten)? Oder DIY die Code-Generierung und reduzieren Sie Ihre Integration zu einem einzigen Aufruf einer SMS-API?

+0

Danke Tim. Ich denke, für mich ist die SMS-API in Ordnung. Meine einzige Sorge sind Bots - was ist, wenn sie sich registrieren und ungültige Nummern eingeben und das System eine Bestätigung anfordert - berechnen Dienste wie Nexmo nur gültige/gelieferte SMS-Nachrichten? – A4J

+1

@ A4J Auf der SMS-API wird für jede SMS eine Gebühr erhoben (gilt generell für alle SMS-APIs). Wenn die Nummer selbst ungültig ist, wird Ihnen nichts berechnet. Für Verify wird nur eine erfolgreiche Verifizierung berechnet (der Benutzer stellt den korrekten Code bereit). –

+0

Danke Tim - kennst du irgendwelche Anleitungen oder Edelsteine, um Nexmo mit einer Rails App zu integrieren? – A4J

1

Twilio Entwickler Evangelist hier.

Sie können Twilio (oder einen dieser anderen Dienste) unbedingt verwenden, um Telefonnummern zu überprüfen. Es gibt eine good blog post here, die die Schritte erläutert, die Sie durchführen können, um eine Telefonüberprüfung per SMS durchzuführen.

Da Sie auch Festnetznummern überprüfen möchten, müssen Sie möglicherweise auch eine Sprachbestätigung hinzufügen, in der Sie einen Benutzer anrufen und stattdessen den vierstelligen Code auslesen. Dies kann auf ähnliche Weise erreicht werden, aber indem ein ausgehender Anruf an die Telefonnummer ausgeführt wird, die den individuellen Code unter Verwendung von Twilio's text to speech <Say> verb ausliest.

Lassen Sie mich wissen, ob dies überhaupt hilft. Ich bin auch in Großbritannien, also erreiche, ob ich weiter helfen kann.

+0

Danke für die Info Phil - Ich werde den Link überprüfen. Haben Sie immer noch ein Startup-Angebot ($ 13,70 in Twilio-Guthaben), das Danielle im Quora-Thread erwähnt? Twilio scheint teurer als die anderen:/ – A4J

Verwandte Themen