Blog navigation keyboard_arrow_down

Blog Rss rss_feed

Подтверждение номера телефона по SMS (часть 2)

Подтверждение номера телефона по SMS (часть 2)

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

$('input[name="phone_e"]').parent().parent().find('.form-control-comment').html('Кнопка');

image.png

Поздравляем! Кнопка добавлена, теперь стоит перейти к обработчику и отправке SMS. В начале переопределим контролёр, по пути /override/controllers/front/, создадим файл AuthController.php и в нём воспользуемся новым методом protected function phoneVerification().

В принципе, тут нет ничего сложно. В дополнительных материалах выложим этот класс, а сейчас просто кратко опишем методы:

Метод genn($length) генерирует случайное число и принимает одно свойство - длинна кода для отправки по SMS.

Метод showDate($time) принимает время записанное в Cookie в момент первой отправки и служит для определения временного интервала, пройденного с момента первой отправки SMS. Грубо говоря, не позволяет пользователю отправлять SMS постоянно, а ставит ограничение по отправке на определённый интервал времени.

Для обращения к необходимому url нам нужно в методе phoneVerification() сделать проверку на GET параметр phone_verification = 1 и action=phone

if (Tools::getIsset('phone_verification') && Tools::getValue('action') == 'phone')

Теперь мы можем обращаться по url /login?phone_verification=1&action=phone и производить действия для отправки SMS и верификации пользователя.

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

$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
async: true,
cache: false,
url: '/login?phone_verification=1&action=phone',
data:'phone='+$('input[name="phone_e"]').val(),
dataType: "json",
success: function(response) {}
});

Принцип такой:
1) Отправляем телефон
2) Блокируем кнопку
3) Показываем поле для ввода кода из SMS
4) Отправляем на сравнение

 На этом вторая часть подошла к своему логическому завершению, если у Вас всё получилось, то смеле переходите к третей части. Возникла проблема - обращайтесь!

Was this blog post helpful to you?

    
No comments at this moment
close

Checkout

close

Favourites