Подтвердить что ты не робот

Определение номера телефона для мобильных приложений

Мы все знаем, что Devise является стандартом де-факто для реализации аутентификации в приложениях на основе rails.

По умолчанию он использует электронную почту в качестве идентификатора, но также позволяет вместо этого использовать имена пользователей. Он также имеет модуль "Подтверждающий", который позволяет подтвердить адрес электронной почты, отправив электронное письмо и щелкнув по ссылке, чтобы подтвердить вашу электронную почту.

Я искал нечто похожее для телефонных номеров - в основном принимал номера телефонов в качестве первичного идентификатора вместо электронных писем, а затем подтверждал номер телефона, отправив код авторизации как SMS-сообщение на номер пользователя через что-то вроде Twilio, а затем пусть пользователь подтвердит это, введя код (или даже позвольте пользователю щелкнуть по сгенерированной ссылке, чтобы проверить, как это происходит с электронной почтой).

Причина, по которой я ожидал, что этот модуль будет популярным модулем разработки, состоял в том, что кажется, что большинство мобильных социальных приложений принимают номера телефонов и подтверждают число в настоящее время. Должен быть кто-то, кто думал, что это проблема, и для этого создан модуль. Однако я не мог найти популярных. Фактически, если быть точным, вот только три релевантные ссылки, которые я нашел по этому поводу:

Ни одно из них не приводит к рабочему решению (я пробовал devise_sms_activable, но он не работает для рельсов 4, плюс я опасаюсь низкого числа звезд). Поэтому я хотел спросить, есть ли жизнеспособное решение для это. Я что-то упускаю? Была ли эта тема поднята среди сообщества разработчиков Devise? Мне интересно это решение, но если его нет, я бы по крайней мере оценил любой ответ на вопрос, почему это не доступно.

[UPDATE]

Я думаю, что этот вопрос, возможно, немного вводил в заблуждение. Хотя я могу просто построить его сам, мне не нравится изобретать колесо. В основном, мое намерение в этом вопросе было:

  • Если есть какой-либо пакет, который делает это (например, все модули, такие как confirmable, token_authentcatable и т.д. Возможно, даже модуль Devise не может быть совсем другим)
  • Или, если такого предустановленного решения нет, почему его нет. Я просто не могу понять, почему такого решения я не могу найти, когда все, кажется, делают это.

Я с радостью соглашусь, когда получу ответ на # 1 или # 2. Спасибо!

4b9b3361

Ответ 1

Я рассмотрел это раньше... но требования к проекту изменились... так что все следующие относительные ссылки найдены на devile wiki

вы можете использовать предыдущие ссылки в сочетании с чем-то вроде Twilio, чтобы отправить созданный пользовательский токен аутентификации и аутентифицировать пользователя с помощью телефона номер, отличный от электронной почты.

[ОБНОВЛЕНИЕ]

поскольку вы упомянули уже работающее решение, я думаю, что это то, что вы ищете. Active Model OTP и этот пост в блоге это новое и у меня не было возможности протестировать его: D

Я также нашел Расшифровка двухфакторной аутентификации

[UPDATE Aug/2017]

На основе проекта, над которым я недавно работал, я обнаружил, что Tinfoil/devise-two-factor обеспечивает действительно хорошую/расширяемую интеграцию с разработкой ( и настраивается на большой скорости)... с использованием внутреннего драгоценного камня ROTP вы можете предоставить разные коды длины, основанные на разных методах аутентификации (APP/SMS) и разных разрешениях окна/дрейфа на один метод, без необходимости писать все с нуля. (настоятельно рекомендуется, если вам нужна полная мощность над сложным рабочим процессом)

Ответ 2

Я OP, и, поскольку я задал этот вопрос, я столкнулся с драгоценным камнем, который называется active_model_opt https://github.com/heapsource/active_model_otp

Этот драгоценный камень - не совсем плагин для разработки, но он делает именно то, что я искал. В основном, добавляя его в свою пользовательскую модель, он генерирует однократные пароли, действительные в течение определенного времени. Он даже имеет встроенную функцию для "аутентификации" с использованием одноразового пароля.

В любом случае, я надеюсь, что любой, кто наткнулся на этот вопрос, может найти этот ответ полезным.

Ответ 3

Вероятно, не совсем то, что искали OP, но для разработчиков Rails в Китае теперь есть драгоценный камень, называемый china_sms, который автоматически интегрирует различные китайские службы отправки SMS в ваше приложение Rails. Я просто добавлю его здесь, если кто-нибудь найдет это полезным.

https://github.com/saberma/china_sms

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