Подтвержение регистрации через СМС в 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

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

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

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

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

Спаммеры на острие атаки.

Ноябрь 27, 2007 г.

Опять что то спаммеры активизировались. Всяку бяку пишут мне в гостевую. Пришлось добавить поле с тест-кодом. Коллеги, хватит продаваться спаммерам. Денюжка, конечно не бывает лишней, но ведь столько областей для применения ваших талантов.

Читать

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

Апрель 12, 2013 г.

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

Читать

 

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

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



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

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

  1. Ян:

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