2015-03-04 13 views
5

Chciałbym zweryfikować numery telefonów kont użytkowników w mojej aplikacji Rails 4 (wysyłając im po prostu czterocyfrowy numer PIN, który będą trzeba wrócić do aplikacji) - jakie usługi są dostępne i jakie są najmniej kłopotliwe w implementacji w aplikacji Rails?Usługi (takie jak Twilo, Plivo, Nexmo) w celu weryfikacji numerów telefonów w aplikacji Railsowej

Chciałbym zweryfikować numery telefonów komórkowych i stacjonarnych na całym świecie, choć moje główne obszary to Europa, USA & Kanada, Australia i Nowa Zelandia (z siedzibą w Wielkiej Brytanii).

Odpowiedz

5

Twój tytuł zawiera trzy główne API SMS-ów, więc w przypadku dostępnych usług masz już dobre zrozumienie. Ale są też API, które koncentrują się wyłącznie na 2FA/Weryfikacji. Oto list of some, warto zauważyć, że koncentruje się on na stronie użytkownika równania (np. Google Authenticator).

Od pytasz o łatwość integracji, API 2FA (zamiast SMS API) może być o wiele łatwiejsze (nie musisz martwić się o generowanie prawdziwie losowego hasła jednorazowego lub używania zastępczego komunikatu głosowego, jeśli użytkownik nie odpowiada na SMS-y itp.).

Nexmo (Zastrzeżenie: Pracuję tam.) Faktycznie oferuje zarówno API SMS/VOICE, a API Sprawdź, zbudowany na szczycie tych API niższego poziomu.

Z naszych Verify API (to będzie podobne, niezależnie od API 2fa) chcesz wykonać połączenie do https://api.nexmo.com/verify/json i przejść number i brand (aby zidentyfikować APP) parametry. Odpowiedź będzie zawierała request_id, a gdy użytkownik poda Twoją aplikację z code, przekażesz zarówno request_id i code do https://api.nexmo.com/verify/check/json.

To jest 2 proste wywołania interfejsu API, aw międzyczasie kojarzysz request_id z sesją użytkownika. Oto quickstart on that process.

W przypadku Nexmo, jeśli upłynie wystarczająco dużo czasu bez drugiego wywołania API, kod zostanie wysłany ponownie, tym razem za pomocą połączenia głosowego (lub, jeśli numer jest linią stacjonarną, rozpoczyna się od głosu).

Z naszych SMS API (znów będzie podobna niezależnie od API) pierwszy będziesz generować kod - co może wydawać się pozornie prosta, jeśli bezpieczeństwo jest problemem, musisz upewnić się, że pokolenie jest naprawdę losowy.

Następnie zapiszesz kod i send an SMS.W Nexmo będzie to połączenie z https://rest.nexmo.com/sms/json z text Twojej wiadomości, to i from *. Istnieje również problem związany z bezpieczeństwem, ponieważ przechowujesz kod na tym samym serwerze, który go zatwierdza. Jeśli to jest zagrożone, przepływ weryfikacyjny jest również.

Na koniec porównaj kod dostarczony przez użytkownika z zapisanym kodem.

Tak więc najmniej kłopotów naprawdę zależy od Ciebie. Czy łatwiej jest wykonywać dwa wywołania interfejsu API i unikać bezpiecznego generowania/zapisywania kodu (i potencjalnie otrzymać zwrot pieniędzy za darmo)? Lub Zrób to sam, generując kod i ogranicz swoją integrację do pojedynczego połączenia z SMS API?

+0

Dzięki Tim. Myślę, że dla mnie SMS API jest w porządku. Moją jedyną obawą są boty - co zrobić, jeśli zarejestrują się i wprowadzą nieprawidłowe numery, a system poprosi o weryfikację - czy usługi takie jak Nexmo pobierają tylko opłaty za ważne/dostarczone wiadomości SMS? – A4J

+1

@ A4J Za pomocą SMS API naliczana jest opłata za każdy SMS (zazwyczaj dotyczy wszystkich SMS API). Jeśli sama liczba jest nieprawidłowa, nie zostaniesz obciążony żadnymi kosztami. W przypadku weryfikacji masz tylko opłatę za pomyślną weryfikację (użytkownik podaje poprawny kod). –

+0

Dzięki Tim - znasz jakieś przewodniki lub klejnoty, które pomogą Ci zintegrować Nexmo z aplikacją Rails? – A4J

1

Twilio developer evangelist here.

Absolutnie możesz użyć Twilio (lub dowolnej z tych innych usług) do weryfikacji numerów telefonów. Istnieje good blog post here, który wyjaśnia kroki, które można wykonać, aby przeprowadzić weryfikację telefoniczną za pomocą wiadomości SMS.

Podczas sprawdzania numerów stacjonarnych konieczne może być również dodanie potwierdzenia głosowego, w przypadku którego użytkownik jest wywoływany i zamiast tego odczyta 4-cyfrowy kod dostępu. Można to osiągnąć w podobny sposób, ale wykonując połączenie wychodzące na numer telefonu, który odczytuje indywidualny kod za pomocą Twilio's text to speech <Say> verb.

Daj mi znać, jeśli to w ogóle pomoże. Jestem również w Wielkiej Brytanii, więc skontaktuj się, jeśli mogę pomóc dalej.

+0

Dzięki za informację Phil - sprawdzę link. Czy nadal masz ofertę startową (133,70 $ na koncie Twilio), o której wspomina Danielle w wątku Quora? Twilio wydaje się droższy niż inne:/ – A4J