Подтверждение телефона по SMS

Подтверждение телефона по SMS

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

Что вы создадите

Подтверждение телефона по SMS

Обговариваем процесс

После того, как пользователь оставит свой номер телефона, нам необходимо выполнить ряд простых шагов:

сгенерировать уникальный код из четырех цифр;

записать номер телефона и этот код в базу данных (или зашифровать код локально в виде скрытой переменной формы на странице);

отослать текст с кодом на неподтвержденный номер;

показать форму с запросом на ввод полученного кода;

проверить совпадение кодов;

обозначить номер телефона в базе данных как подтвержденный.

Контактная страница пользователя

На сайте Meeting Planner каждый пользователь может добавить несколько способов связи, т.е. Skype, телефон и т.д. Каждый телефонный номер необходимо подтвердить для использования SMS уведомлений.

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

Подтверждение телефона по SMS

Клик по галочке перенаправляет пользователя в контроллер actionVerify() ниже. Обратите внимание, что первый раз пользователь попадет в блок else, так как он еще не отправил код подтверждения:

Метод canRequest() проверяет запрос кода на повторность и частоту:

Чтобы не злоупотреблять, я поставил задержку в одну минуту.

Передача кода подтверждения

Если есть разрешение, вызывается requestCode():

Код делает следующее:

генерирует случайное четырехзначное число;

записывает текущее время (в юникс секундах) запроса;

инкрементирует попытки подтверждения для этого номера телефона;

записывает все в базу данных;

передает текст с кодом, как показано на изображении ниже.

Подтверждение телефона по SMS

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

Подтверждение телефона по SMS

Подтверждение кода

Когда пользователь пытается отправить код, запускается верхняя часть actionVerify():

Коды проверяются на совпадение. Если коды совпадают, база данных обновляется, и телефон становится подтвержденным. А пользователь получает сообщение:

Подтверждение телефона по SMS

Если коды не совпадают, появляется сообщение об ошибке:

Подтверждение телефона по SMS

Попробуйте

Хотите посмотреть все в действии, зарегистрируйтесь на Simple Planner или Meeting Planner (что легко сделать с помощь аккаунта в социальных сетях типа Facebook* или Google) и добавьте номер телефона. Затем кликните на галочку в списке, и все.

Заключение

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

Автор: Jeff Reifman

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

* Признана экстремистской организацией и запрещена в Российской Федерации.

Метки:

Похожие статьи:

Комментарии Вконтакте: