SMS авторизация на современных сайтах — явление нередкое. Посетитель вводит номер телефона, получает sms с кодом, вводит код в текстовое поле. После подтверждения кода он авторизован. Нет необходимости запоминать пароль. Да, собственно, и сам пароль никто не сможет подобрать или украсть. Безопасно и удобно. Возможность sms авторизации под CMS Joomla предоставляет компонент J SMS Registration.

Перед покупкой компонента, очень рекомендую ознакомиться со статьей "СТОИМОСТЬ АВТОРИЗАЦИИ ПО СМС И ЗВОНКУ - РАССКАЗ И АНАЛИЗ"

На данный момент в компоненте поддерживается работа со следующими смс агрегаторами:

  1. SMS.RU

  2. UCALLER

  3. SMSInt

  4. Sms Assistent (Беларусь)

В состав дистрибутива входят:

  1. Компонент

  2. Модуль авторизации

  3. Плагин

Совместимость: Joomla 3, Joomla 4 и Joomla 5

Скаченный архив необходимо распаковать и последовательно установить компонент, модуль и плагин.

Купить компонент в Интернет-Магазине

Принцип работы

Форма авторизации выводится на сайте с помощью компонента или с помощью модуля. 

Демонстрационный сайт расположен по ссылке ниже:

https://joomla4.sitogon.ru/sms-demo

 

На демонстрационной странице показаны два варианта модуля SMS авторизации. В каждом из модулей есть возможность не только SMS авторизации, но и стандартной авторизации с помощью логина и пароля.

Если нажать на ссылку «Войти по логину и паролю», то будет отображаться стандартная форма авторизации Joomla, где будет предложено ввести логин и пароль.

Вернемся к SMS авторизации.

После ввода номера телефона посетителю сайта высылается SMS с кодом.

После ввода кода автоматически запускается проверка кода и если он введен верно, то происходит авторизация.

Если посетитель был ранее зарегистрирован, то он остается странице, с которой осуществлял авторизацию. Все дальнейшие действия  на сайте он уже делает, как авторизованный пользователь.

Если же посетитель авторизуется на сайте первый раз, то он будет переадресован на страницу, где ему необходимо будет ввести данные. А именно: Email и Имя.

После заполнения данных и нажатия на кнопку «Подтвердить» посетитель будет переадресован на ту страницу, с которой осуществлялась авторизация.

Установка

После приобретения компонента, вы скачаете архив «j_sms_registration_unzip_first.zip». Архив необходимо распаковать на вашем локальном компьютере.

Далее, через менеджер расширений Joomla, последовательно устанавливаем:

com_j_sms_registration.zip — компонент

mod_j_sms_registration.zip — модуль

plg_j_sms_registration.zip — плагин

Настройка

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

Чуть позже мы рассмотрим отдельно настройку, каждого из смс-агрегаторов, а в данный момент мы в главном меню административной панели Joomla перейдем «Компоненты — J SMS REGISTRATION»

Далее в правом верхнем углу нажмем кнопку «Настройки».

Вкладка "Параметры"

При необходимости компонент может работать только в режиме авторизации. То есть, авторизовать исключительно ранее зарегистрированных пользователей.

При попытке зарегистрироваться через компонент, появится предупреждение о том, что регистрация невозможна.

Для активации данного режима выпадающий  список "Отключить регистрацию" необходимо установить в значение "ДА".

В текстовом поле "Текст сообщения" задается код сообщения, которое придёт в смс. 

В выпадающем списке «СМС-агрегатор» необходимо выбрать сервис, с которым вы планируете работать.

Далее идут настройки интеграции с сервисом DADATA, о которых чуть ниже будет рассказывать отдельный раздел данной статьи.

Поскольку в новых версия Joomla библиотека jQuery по умолчанию более не подключается в шаблонах, это можно сделать в настройках компонента, установив выпадающий список "Подключать jQuery" в значение "ДА".

Без подключения данной библиотеки компонент корректно работать не будет!

По умолчанию, при открытии формы авторизации, первой открывается авторизация по SMS. Ниже расположена кнопка для открытия стандартной авторизации, той, где посетитель вводит логин и пароль.

Такой порядок можно изменить в выпадающем списке "Что отображается первым при выборе sms авторизации". 

Выпадающий список "Сохранять данные пользователя в куках и авторизовать автоматически, если пользователь был ранее авторизован" позволяет запоминать данные пользователя в куках и авторизовывать его автоматически при повторном посещении сайта.

За аналогичную операцию, только для административной части сайта отвечает выпадающий список "Разрешить авторизацию через куки для административной панели".

В текстовом поле "Количество секунд до следующей отправки sms" задается интервал, через который посетитель сможет запросить отправку смс повторно.

Несмотря на то, что у двух ключевых смс агрегаторов есть тестовый режим, в компоненте есть возможность задать телефонный номер для тестирования. Сделать это можно в текстовом поле "Номер для тестирования".

Телефонный номер должен быть в формате: 79211111111

Проверка номеров сервисом DADATA

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

Например телефонный номер +7 111 111 11 11 может быть введен, как:

+7 111 111 11 11

7 111 111 11 11

8 111 111 11 11

SMS-агрегатор примет все три варианта и отправит посетителю смс, однако с точки зрения компонента это будут три разных номера. Соответственно, три разных пользователя.

Российский сервис DADATA позволяет стандартизировать номера. И что немаловажно, номера всех операторов мира.

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

На момент написания данной инструкции стандартизация одного номера стоила 10 российских копеек.

Для регистрации в сервисе необходимо перейти по ссылке ниже:

https://dadata.ru/#registration_popup

После регистрации, в личном кабинете необходимо скопировать предоставленные API ключ и Секретный ключ и вставить их в настройки компонента J SMS Registration

Вкладка "Авторизация VK"

Авторизации через API социальной сети VK посвящена отдельная статья на сайте.

Вкладка «Email»

Выпадающий список «Авторизация по Email, регистрация по SMS» позволяет перевести компонент в режим работы, когда регистрация осуществляется посредством SMS, а все последующие авторизации с помощью отправки четырехзначного проверочного кода на Email, указанный при регистрации.

Более подробно о данном механизме рассказано в новости, посвящённой выходу версии 2..1.7.

Выпадающий список «Скрывать Email в форме авторизации» будет виден и доступен для изменения в том случае, если активирована авторизация по Email.

В случае выбора значения «ДА», в форме авторизации адрес электронной почты будет частично скрыт.

Ниже, на скриншоте, показано то, как это будет происходить.

«Отсылать письмо посетителю после подтверждения регистрации» - если значение данного списка установлено, как «ДА», то посетитель сайта, после подтверждения регистрации, на указанный им адрес электронной почты, получит письмо, где будут указаны его данные.

«Отсылать письмо администратору после подтверждения регистрации» - предназначение данного списка аналогично предыдущему, с той разницей, что данные о новом пользователе будут отправлены администратору сайта.

«Отсылать письмо администратору после создания пользователя» - когда посетитель сайта первый раз на сайте открывает форму авторизации и первый раз вводит свой номер телефона в базе данных сайта сразу же создается пользователь.

У него еще нет имени, пароля, адреса электронной почты, однако, в админ панели сайта он уже виден.

Если данный выпадающий список установлен в значение «ДА», то администратор сайта будет получать уведомления о всех новых, но еще не подтверждённых пользователях.

Вкладка «Регистрация»

«Отображать при завершении регистрации поле email» - позволяет отображать или скрывать поле ввода адреса электронной почты на странице подтверждения регистрации.

Если данное поле скрыть, то авторизация по email будет недоступна. Вместо адреса электронной почты будет сгенерирован адрес типа телефон@доменное имя сайта.

«Использовать проверку Email» - позволяет активировать проверку адреса электронной почты путём отправки на указанный Email четырехзначного проверочного кода.

Более подробно об этом рассказано в новости, посвящённой выходу версии 2..1.7.

«Отображать при завершении регистрации поле пароль» - позволяет отображать на странице завершения регистрации поле ввода пароля.

«Текст рядом с чекбоксом согласия на обработку персональных данных» - если данное поле заполнить, то на странице завершения регистрации появится чекбокс напротив, которого будет указанный текст.

«URL перенаправления» - страница, на которую произойдет перенаправление при завершении регистрации. Если поле не заполнено, то произойдет попытка возврата пользователя на ту страницу, с которой он начинал регистрацию.

Если по каким-то причинам эта страница не сохранилась, будет произведён редирект на главную страницу сайта.

«Коррекция даты регистрации (в часах)» - данное поле необходимо менять в том случае, если дата регистрации пользователя отличаются от реальных.

Вкладка «Интеграция»

«Компонент JoomShopping» - если установлено значение «ДА», то в момент подтверждения регистрации, в компоненте JoomShopping будет также создан новый пользователь.

Начиная с версии 2.1.3 обязательным шагом настройки компонента является создание пункта меню тип которого будет «J SMS Registration — Регистрация»

Также хочу обратить ваше внимание на то, что для корректной работы авторизации, в общих настройках сайта переключатели «Включить SEF» и «Перенаправлять URL» должны быть активированы.

 

Настройка СМС агрегаторов

Настройка смс агрегаторов заключается в получении и введении авторизационных данных. А также во включении и отключении логирования.

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

Просмотреть логи можно в соответствующем разделе в административной панели.

SMSint

Для подключения к сервису SMSint необходимо пройти регистрацию и получить доступ в личный кабинет.

Страница регистрации (она же и авторизации) доступна по ссылке ниже:

https://lcab.smsint.ru/

В личном кабинете нам необходимо получить токен, который потребуется при дальнейшей настройке компонента J SMS Registration.

Для получения токена в личном кабинете SMSint обратим внимание на левую боковую панель меню, где нас интересует кнопка под названием API.

Нажатие на нее перенесет нас на страницу, где следует обратить внимание на блок «Рассылка сообщений».

Далее кидаем взор на кнопку «Создать токен», которую ни секунды не колеблясь нажимаем...

… и видим всплывающее окно, где потребуется придумать название нашему токену.

Название вводится в произвольной форме и будет полезно, если планируется создание более одного токена. К примеру, для двух и более сайтов. Если же токен будет исключительно один и других токенов не планируется, то в данное текстовое поле можно ввести что нибудь поэтичное на тему одиночества.

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

Настало время вернуться в административную панель компонента J SMS Registration и перейти на страницу редактирования настроек агрегатора SMSint

Обратите внимание! Сервис SMSint поддерживает работу с рассылкой кода путем телефонного звонка. Это значительно дешевле смс уведомлений и не требует регистрации отправителя SMS.

При активированном тестовом режиме смс и звонки совершаться не будут, однако, данные о совершенном действии можно будет увидеть в разделе «Логи» административной панели компонента J SMS Registration.

SMS.RU

Сайт сервиса: http://sms.ru/

После регистрации в личном кабинете, необходимо получить и скопировать API ID.

Сделать это можно в разделе «Программистам»

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

Создать отправителя можно в соответствующем разделе. Однако, от вас попросят написать гарантийные письма сотовым операторам.

После того, как создан отправитель и скопирован API ID, в административной панели компонента J SMS Registration открываем на редактирование агрегатора SMS.RU и вставляем полученные данные.

Обратите внимание на выпадающий список «Тестовый режим». Он позволяет настроить отправку смс без отправки сообщений на телефоны. То есть, в момент тестирования с вас не будут снимать деньги, а отправленные сообщения вы сможете увидеть в разделе «История» личного кабинета SMS.RU

SMS-ASSISTENT.BY

Регистрация в сервисе доступна по адрес: https://sms-assistent.by/

Для настройки компонента J SMS Registration нам понадобятся логин и пароль, которые вы получили при регистрации, а также Отправитель SMS

К сожалению, тестового режима у sms-assistent.by не предусмотрено и отладка отправки смс будет происходить за ваш счет. И, тем не менее, для компаний расположенных на территории Беларуси использование sms-assistent.by будет более выгодным, нежели и работа с зарубежными смс-агрегаторами.

ClickSend

Для тех, кто планирует работать с клиентами из США, Англии, Европы, наиболее удобен сервис ClickSend.

Регистрация в ClickSend возможна по ссылке ниже:

https://clicksend.com/

Личный кабинет ClickSend поражает воображение обилием функций. На этапе настройки компонента J SMS Registration нам понадобится раздел «Account Settings»

Для перехода в указанный раздел, в правом верхнем углу кликаем по иконке пользователя и в выпадающем меню выбираем необходимый пункт.

Откроется страница, где мы нас интересует USERNAME и API KEY пользователя.

Копируем значения из каждого поля и вставляем в соответствующие текстовые поля в компоненте J SMS Registration

Для тестирования работы ClickSend предоставляет кредит в несколько долларов. Баланс личного кабинета отображается в валюте вашей страны. Этой суммы достаточно, чтобы настроить компонент и проверить отправку sms.

При этом заботливая техподдержка может предложить повторно пополнить кредит своими силами.

В процессе тестирования вы наверняка обратите внимание, что в качестве отправителя SMS (Sender Id) указан сервис ClickSend.

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

https://help.clicksend.com/category/mfdctha7f0-country-specific-features-and-restrictions

Вернемся в компонент J SMS Registration и завершим настройку интеграции с ClickSend.

Заключение

Мы подробно рассмотрели настройку компонента «J SMS Registration», который позволяет настроить SMS авторизацию и регистрацию по CMS Joomla.

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

Напоминаю!

Если у вас остались вопросы и предложения, их всегда можно озвучить в группе VK по ссылке ниже:

https://vk.com/sitogon

А также в недавно созданной группе Telegram. Ссылка:

https://t.me/sitogonGroup

С уважением, Владимир Егоров