Uwierzytelnianie oparte na numerze telefonu dla aplikacji mobilnych [zamknięte]

Wszyscy wiemy, że Devise jest de facto standardem implementacji uwierzytelniania w aplikacjach opartych na rails.

Domyślnie używa adresu e-mail jako identyfikatora, ale pozwala również na użycie nazw użytkowników. Posiada również moduł "Potwierdzalny", który pozwala potwierdzić adres e-mail, wysyłając wiadomość e-mail i klikając link, aby zweryfikować swój adres e-mail.

Szukałem czegoś podobnego do numerów telefonów. w zasadzie akceptuję numery telefonów jako ID podstawowe zamiast e-maili, a następnie potwierdzam numer telefonu, wysyłając kod auth jako wiadomość SMS na Numer użytkownika za pomocą czegoś takiego jak Twilio, a następnie pozwól użytkownikowi potwierdzić go, wpisując kod (lub nawet pozwól użytkownikowi kliknąć wygenerowany link, aby zweryfikować, tak jak ma to miejsce w przypadku wiadomości e-mail)

Powodem, dla którego spodziewałem się, że będzie popularny moduł devise dla tej funkcjonalności, było to, że wydaje się, że większość mobilnych aplikacji społecznościowych akceptuje numery telefonów i potwierdza numer w dzisiejszych czasach. Musi być ktoś, kto myślał, że to problem i otwarty moduł do tego. Nie mogłem jednak znaleźć żadnych popularnych. Właściwie, to tutaj są tylko trzy istotne linki, które znalazłem na ten temat:

Żaden z nich nie prowadzi do działającego rozwiązania (próbowałem devise_sms_activable ale to nie działa na rails 4, Poza tym jestem ostrożny z małą liczbą gwiazdek) więc chciałem zapytać, czy jest na to jakieś realne rozwiązanie. Coś przeoczyłem? Czy ten temat został poruszony wśród społeczności deweloperów Devise? Jestem ciekaw rozwiązania, ale jeśli nie ma, byłbym przynajmniej wdzięczny za odpowiedź, dlaczego nie jest to łatwo dostępne.

[UPDATE]

Myślę, że pytanie mogło być nieco mylące. Chociaż mogę go zbudować sam, nie lubię wymyślać od nowa koło. Zasadniczo moim zamiarem z tym pytaniem było:

  1. Jeśli Jest jakiś pakiet, który to robi (jak wszystkie moduły, takie jak confirmable, token_authentcatable, itp. Może nawet nie moduł Devise i może to być zupełnie inna rzecz)
  2. lub, jeśli nie ma takiego wstępnie zbudowanego rozwiązania, dlaczego nie ma takiego. Po prostu nie mogę pojąć, dlaczego nie ma takiego rozwiązania, które mogę znaleźć, gdy wszyscy wydają się to robić.

Chętnie przyjmę, gdy dostanę odpowiedz na #1 lub # 2. Dzięki!

Author: Community, 2014-03-20

3 answers

Sprawdzałem to już wcześniej... ale wymagania projektowe się zmieniły... tak więc wszystkie z poniższych linków są względnymi linkami znajdującymi się na devise wiki

Możesz użyć poprzednich tutów w połączeniu z czymś takim jak Twilio Aby wysłać utworzony Niestandardowy Token auth i uwierzytelnienie użytkownika za pomocą numeru telefonu innego niż e-mail.

[UPDATE]

Skoro wspomniałeś już działające rozwiązanie, myślę, że to jest to, czego szukasz. Active Model OTP i ten wpis na blogu jest nowy i nie miałem okazji go przetestować: d

Znalazłem również dwuskładnikowe rozszerzenie uwierzytelniania Devise

[aktualizacja Sierpień / 2017]

Na podstawie projektu, nad którym ostatnio pracowałem, okazało się, że Folia aluminiowa/devise-two-factor zapewnia naprawdę dobrą/rozszerzalną integrację z devise (i jest wysoce konfigurowalny)... korzystając z wewnętrznego klejnotu ROTP, możesz podać kody różnej długości w oparciu o różne metody uwierzytelniania (APP / SMS)i różne okno/dryf dozwolone dla każdej metody bez konieczności pisania całości od podstaw. (wysoce zalecane, jeśli chcesz mieć pełną moc nad złożonym przepływem pracy)

 13
Author: a14m,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-01 13:35:37

Jestem OP, i odkąd zadałem to pytanie, natknąłem się na klejnot o nazwie active_model_opt https://github.com/heapsource/active_model_otp

Ten klejnot nie jest dokładnie wtyczką devise, ale robi dokładnie to, czego szukałem. Zasadniczo dodając go do modelu użytkownika generuje jednorazowe hasła, które są ważne przez pewien czas. Ma nawet wbudowaną funkcję "uwierzytelniania" za pomocą hasła jednorazowego.

W każdym razie mam nadzieję, że każdy, kto potknął na to pytanie może okazać się przydatna odpowiedź.

 7
Author: Vlad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-25 22:33:26

Prawdopodobnie nie dokładnie tego szukał OP, ale dla programistów Rails w Chinach, teraz istnieje klejnot o nazwie china_sms , który automatycznie integruje różne chińskie usługi wysyłania SMS do Twojej aplikacji Rails. Dodam go tutaj, na wypadek gdyby komuś się przydał.

Https://github.com/saberma/china_sms

Https://ruby-china.org/topics/12407

 3
Author: xji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-22 05:46:04