Умная OTP-авторизация: вход и регистрация в одном поле
Модуль объединяет вход и регистрацию в единый сценарий без паролей. Пользователь вводит телефон или e-mail, получает одноразовый код и сразу входит на сайт или регистрируется.
Основные возможности
Одно поле - автоматическое определение телефона или e-mail. В административной панели можно разрешить телефон и e-mail (по умолчанию), только телефон или только e-mail.
- Умная регистрация - система определяет, есть ли пользователь в базе, и показывает нужный сценарий: чекбоксы отображаются только для новых пользователей и не отмечены заранее.
- Авторизация без пароля - вход по одноразовому OTP-коду.
- Защита от спама - таймер повторной отправки и ограничение количества запросов по IP и вводимому логину.
- Настраиваемый срок действия OTP-кода.
- Тестовый режим — просмотр кодов в админке без реальной отправки SMS и e-mail.
- Адаптивный шаблон — корректная работа на компьютерах, планшетах и смартфонах.
SMS-провайдеры
Поддерживается интеграция с ProstorSMS, REDSMS, SMS Aero, SMSRU и SMSC.
Результат
Меньше действий для пользователя — проще вход и регистрация. Пароли не нужны, интерфейс не перегружен, количество OTP-запросов контролируется.
После установки модуля, в папке /bitrix/components/abcwww/ появится компонент otpauth, содержащий форму авторизации, который вы можете подключить на странице вручную или через визуальный редактор. В настройках компонента можно настроить редирект после авторизации и указать группы пользователей, в которые пользователь будет добавлен при регистрации.
Далее, на странице настроек модуля bitrix/admin/settings.php?lang=ru&mid=abcwww .otpauth заполняются необходимые данные, подробности ниже.
Процесс установки и начальная настройка
В административной панели доступна настройка, которая определяет, какие данные пользователь может вводить в поле авторизации:
- телефон и e-mail (режим по умолчанию);
- только телефон;
- только e-mail;
Логика создания учётной записи зависит от типа введённых данных:
- Email: Создаётся новый пользователь. Логин и Email устанавливаются равными введённому адресу.
- Номер телефона: Создаётся новый пользователь. Логин устанавливается равным номеру телефона, сам номер сохраняется в поле `PERSONAL_PHONE`.
- Обязательный Email: Если в настройках главного модуля активирована опция «Email является обязательным полем», в поле Email автоматически подставляется адрес вида `номер_телефона@local.ru`.
В процессе установки модуль создаёт служебную таблицу для хранения всех проверочных кодов (доступна в административном интерфейсе).
Также добавляется обработчик события редактирования пользователя, который:
- Приводит номер телефона к единому формату перед записью в поле `PERSONAL_PHONE`.
- Блокирует регистрацию, если пользователь с таким номером уже существует в базе.
Отправка оповещений на Email
При установке автоматически создаются почтовые шаблоны:
- Почтовое событие `OTP_CODE` с шаблоном и стандартным HTML-текстом уведомления.
- Проверяется наличие шаблонов для почтового события `NEW_USER`. Если они отсутствуют, устанавливается новый шаблон. Это необходимо для работы настройки «Отправлять дополнительное оповещение о регистрации».
Мгновенная отправка писем
При использовании штатного шаблона отправка Email производится через штатный механизм Битрикс (CEvent::SendImmediate). Модуль поддерживает альтернативную отправку оповещения через SMTP с использованием встроенной библиотеки phpMailer. Параметры подключения настраиваются в опции «Метод отправки Email».
Отправка СМС
Для отправки проверочных кодов по СМС предусмотрена интеграция с провайдерами SmsRu, SmscRu, SmsAero, RedSms, ProstorSms.
При необходимости можно добавить собственного провайдера. Для этого нужно разместить новый класс в директории модуля lib/Sms/, соблюдая несколько правил:
- Класс должен реализовывать интерфейс SmsSenderInterface.
- В классе должен быть реализован метод send, который принимает номер телефона и проверочный код, а возвращает true или false в зависимости от результата отправки.
- Название класса и имя файла должны совпадать, файл имеет расширение .php. Обязательный суффикс — Sender. Например: класс NewProviderSender и файл NewProviderSender.php.
Данные доступа для каждого провайдера задаются в настройках модуля.
Система анти-абьюз контроля
• Лимиты по IP-адресу:
- 5 запросов в минуту
- 20 запросов в сутки
• Лимиты по логину:
- 5 запросов в минуту
- 20 запросов в сутки
Тестовый режим
Для отладки формы авторизации предусмотрен специальный режим. При его активации уведомления на Email и СМС не отправляются. Проверочный код записывается в таблицу базы данных, которая доступна в админке (раздел «Сервисы → ОТП → ОТП-коды»).
Согласие при регистрации
Если телефон или Email отсутствуют в базе (новый пользователь), при попытке отправки форме отображаются чекбоксы согласия. Их состав настраивается в административной панели, а текст редактируется в шаблоне компонента.
Предусмотрена настройка для отправки отдельного уведомления о регистрации. Оно отправляется стандартным методом `Event::send()` по почтовому событию `NEW_USER`.
Не забудьте отредактировать дефолтный почтовый шаблон, если он уже существует.
По умолчанию чекбоксы согласия и отправки оповещения о регистрации нового пользователя отключены в настройках модуля.
Кастомизация шаблона компонента
Разметку и вёрстку шаблона формы можно редактировать, адаптируя её под дизайн вашего проекта. Основное требование: сохранить все CSS-классы и id, название которых начинается с префикса `js-`. Эти селекторы используются для корректной работы JavaScript-функционала отправки формы. Также необходимо сохранить правильную вложенность HTML-тегов с указанными селекторами.
Логирование ошибок
В модуле предусмотрено логирование. Если при настройке или тестировании что-то пошло не так, в первую очередь стоит заглянуть в директорию модуля /bitrix/modules/abcwww .otpauth/log/. Там собираются файлы с записями возможных ошибок. Имена файлов соответствуют классам модуля — это упрощает поиск нужной информации.
При обращении указывайте название модуля и купон, полученный при покупке решения.
Мы работает по будням с 9 до 18 часов (МСК), время реагирования - в течение суток. СБ, ВС и праздничные дни - выходные.
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.