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?
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
@ 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). –
Danke Tim - kennst du irgendwelche Anleitungen oder Edelsteine, um Nexmo mit einer Rails App zu integrieren? – A4J