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

Регистрация SMS, как в мобильном приложении: whatsapp

Мне интересно, как работают эти механизмы смс-регистрации. Я искал в интернете, но проблема в том, что есть так много sms-провайдеров, которые хотят продавать онлайн-sms-услуги, поэтому я ничего не могу найти...

Вопрос: Как это работает: Установите свой номер мобильного телефона и отправил вам SMS с отп. Вставьте этот пароль в приложение.

Что позади? У них есть смс-шлюз или что-то вроде этого? Сколько это стоит?

Спасибо

4b9b3361

Ответ 1

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

Базовая интеграция для мобильного приложения (специально для этого примера кода, но общий поток):

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

Вы можете удалить размещенную часть и просто выполнить эти шаги внутри своего приложения (сгенерировать код, отправить через SMS-API, проверить код, который вводит пользователь). Однако в этом вопросе есть несколько вещей:

  • Учетные данные SMS API скомпилированы в ваше распределенное приложение. Это то, что вы хотите рискнуть?
  • Код отправляется через сеть с устройства; в то время как SSL прекратит случайное наблюдение за кодом, кто-то, кто хотел подделать регистрацию, мог более чем вероятно захватить код из HTTP-запроса.

Обе эти проблемы решаются путем установки системы проверки вне мобильного приложения.

Ответ 2

я знаю, что этот пост слишком старый, но это для людей, которые посетят эту страницу в будущем:

то, что пользователь "Суровый Шах" сказал неправильно..

Вы НЕ ДОЛЖНЫ генерировать случайное число на самом устройстве! это скомпрометирует всю проверку,

  1. Вы спрашиваете у пользователя номер телефона, отправляете его на сервер.
  2. в качестве ответа на этот запрос вы генерируете случайное число и сохраняете его вместе с номером пользователя в записях пользователей на БД, и отправляете SMS с этим случайным числом, ОТВЕТ на запрос должен быть ОТПРАВЛЕН-ОК, НЕ-ОТПРАВЛЕН.
  3. устройство получает SMS и отправляет его обратно на сервер для сравнения с существующей записью в БД.

обмен данными:

  1. телефон отправляет ('012345567') → ответ сервера ('SENT-OK'); на фоне: Сервер: [создать номер, отправить его в SMS, сохранить в дБ для пользователя 01234567, например: 123123]

[телефон читает SMS, например, как "123123"]

  1. телефон отправляет ("01234567", "123123") → сервер отвечает ("AUTH-OK");

на фоне: сервер: [проверьте БД для записи пользователя 01234567, сравните случайное число, сгенерированное на шаге 1, с номером, отправленным пользователем).

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

Ответ 3

Основными принципами являются:

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

Существует много провайдеров шлюзов SMS. Вы можете искать в google. Большинство из них также предоставляют учебник по использованию их API на различных языках программирования. Стоимость в основном основана на каждом сообщении, и обычно они должны быть куплены в виде пакета количества SMS-сообщений.

Ответ 4

В этой статье объясняется, как интегрировать проверку sms в ваше приложение для Android так же, как и приложение.

Android добавляет подтверждение SMS Как WhatsApp - Часть 1

Android добавляет подтверждение SMS Как WhatsApp - часть 2

введите описание изображения здесь

В основном следующие шаги включают в себя проверку номера мобильного телефона

  • Номер мобильного телефона первого пользователя будет отправлен на наш сервер, где будет создана новая пользовательская строка.

  • Наш сервер запрашивает шлюз SMS для sms на мобильный номер с кодом подтверждения.

  • Шлюз SMS отправляет SMS-сообщение на пользовательское устройство с кодом подтверждения.

  • Код подтверждения будет отправлен обратно на наш сервер для проверки. Наш сервер проверяет его и активирует пользователя.