Как я могу подтвердить новую регистрацию пользователя через SMS?

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

Я хочу отправить новому пользователю SMS с уникальным кодом. При первом входе в систему они должны ввести этот код для активации своей учетной записи.

У меня есть пользовательская служба SMS, которая отправляет мелкие SMS-сообщения, и хотела бы знать, как ее интегрировать в процесс регистрации Identity.

Обратите внимание, что я не хочу использовать SMS для обычной двухфакторной аутентификации.

Ответ 1

Вы можете использовать создание дополнительных действий в своем контроллере аккаунта и использовать методы из Microsoft.AspNet.Identity.Core

  • UserManager.GenerateChangePhoneNumberToken
  • Отправить sms с токеном
  • UserManager.VerifyChangePhoneNumberToken
  • Добавить пользовательскую логику для авторизации

Ответ 2

Существует несколько способов сделать это.

  • Дешевая, но ненадежная или готовая компания - это создать приложение на собственном устройстве и отправить на него другие устройства. Вы можете обрабатывать SMS и отвечать, как вам нравится. С неограниченными текстовыми планами это было бы хорошо. Он просто не является избыточным или надежным (аккумулятор телефона может умереть, возможно, вам придется делать обновления, которые могут прерывать обслуживание и т.д.)

  • Работайте с компанией Twilio (https://www.twilio.com/) и используйте свои шлюзы SMS, API и сервисы для создания, быстрого и дешево (по большей части) тип услуги, которую вы хотите предоставить. Есть конкуренты Twilio, и я не одобряю их, просто предоставляя их в качестве примера.

  • Получите свой собственный шлюз SMS (https://en.wikipedia.org/wiki/SMS_gateway), а затем выполните сильно интегрированные и настроенные службы.

Если это всего лишь доказательство концепции на уровне предприятия или вы не знаете, каков будет ваш уровень принятия вашего пользователя, то # 1, вероятно, хорошо, пока вам не понадобится # 2. # 3 редко является лучшим вариантом.