Подтвержение регистрации через СМС в Drupal

На мой взгляд, это и новый виток в войне с ботами и предвестник авторизации в будущем.

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

А пока не пришло это замечательное время (когда у каждого в голове при рождении зашивают микрочип) мы попробуем добавить в drupal подтверждение авторизации по СМС.

Изначально в Drupal есть подтверждение регистрации по e-mail, когда случайно сгенерированный пароль отправляется по e-mail. Т.е. чтобы получить пароль для входа, надо указать действующий e-mail. Автоматизировать регистрацию при этом не сложно, чем пользуются наши друзья спамеры, т.к. зарегистрировать новый домен и тут же повесить на этот домен почтовый сервер, залить нужный софт по обработке почты — все это можно делать сейчас не слезая с дивана и даже не показывая паспорта.

Нам понадобится СМС-шлюз, в роли которого будет выступать — epochta.ru. Т.е. все что касается отправки СМС будет сделано на API этого сервиса. Друпал у нас будет версии 6, но для других версий коренным образом отличаться ничего не будет. Опять же слезать с дивана и показывать спамеру паспорт не потребуется, но автоматизировать процесс регистрации будет сложнее. И, главное, мы получим валидный номер сотового телефона, на который и новости сайта можно разослать (корпоративную рекламу) и восстановление пароля привязать к нему (дальше фантазируйте сами)…

Алгоритм

Алгоритм следующий — человек вводит анкетные данные как обычно на странице /user/register, а далее ему выводится сообщение — что мол, инструкции по активации высланы на почту. В настройках пользователя /admin/user/settings выбран режим — «Посетители могут создавать учетные записи, разрешение администратора не требуется.» и установлен флажок «Требуется подтверждение по электронной почте, когда посетитель создает учетную запись».reg-mode

Учетная запись создается не активной (деактивируется сразу после создания), а в письме сообщается, что для активации требуется ввести код отправленный в СМС по указанному в форме регистрации номеру сотового телефона. Для создания поля используем штатный модуль profile, где настраиваем поле profile_tel.

tel-field

Тут важно, чтобы поле отображалось в форме регистрации и было обязательно для ввода.

Страница с формой активации (у нас она будет по адресу /user/confirmation) содержит всего два поля — e-mail и код активации. При вводе верной пары значений учетная запись активируется, пользователь может ввести свои реквизиты (высланные ранее в письме) для авторизации на сайте.

Код на PHP для Drupal

Встраиваем следующие кусочки кода в существующий или новый модуль. У меня модуль назывался SMS.

1. Новые разделы сайта

Здесь я добавил пару страниц — на первой user/registration-successfull будет показано сообщение об успешной регистрации, на второй user/confirmation — форма для ввода кода подтверждения.

2. Модификация обработки формы регистрации

Здесь надо добавить проверку поля с телефоном (верный ли синтаксис). А при отправке данных выполнить отправку СМС и переход на стр. с сообщением об успешной регистрации.

Надо несколько слов сказать о сервисе EPochta.ru. Понятно, что для отправки СМС надо там зарегистрироваться, и отправка сообщений — услуга платная :). Вот полезные ссылки —

После создания учетной записи, нужно будет настроить аккаунт для работы: сгенерировать публичный и приватный ключ (ВАШ_ОТКРЫТЫЙ_КЛЮЧ, ВАШ_ЗАКРЫТЫЙ_КЛЮЧ в листинге), поставить галочку «Активировать API 3.0». Файлы классов работы с epochta разместить в одноименной подпапке вашего модуля.

sms-epochta

Есть у сервиса и тестовый режим, когда СМС не отправляется, но показаны соответствующие данные в статистике (что мол принято сообщение успешно) — чтобы деньги зря на тесты не тратить.

Будут вопросы — будут и ответы. Пишите в комменты к статье.

Написать комментарий

Мало букафф? Читайте есчо !

Бегство от спама

Апрель 12, 2013 г.

На очередном витке антиспамовой борьбы решил почитать о том, как спамеры обходят Captcha тесты. Обнаружил весьма интересную статью - Устойчивость CAPTCHA к авоматическому распознаванию. Если, вкратце, то мы имеем гонку вооружений технологий. Captcha ...

Читать

Удаление бот-пользователей с сайта на Drupal

Сентябрь 22, 2015 г.

Несколько лет назад, когда решил попробовать 7ю версию drupal, я создал сайт wbserv.ru. Тогда только начали предлагать разные облачные услуги, это показалось ...

Читать

 

Комментарии к «Подтвержение регистрации через СМС в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Один комментарий в “Подтвержение регистрации через СМС в Drupal”

  1. Ян:

    Привет
    К 7 друпалу тоже было бы не плохо инструкцию добавить.