Битрикс авторизация по номеру телефона

Регистрация по номеру телефона

Урок
130
из
292

Сложность урока:

2 уровень — несложные понятия и действия, но не расслабляйтесь.


2 из 5

Дата изменения:
11.01.2023

Просмотров:
33423

Недоступно в лицензиях:

Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).


Старт, Стандарт

Регистрация по номеру телефона

Начиная с версии 18.5.0, в «1С-Битрикс: Управление сайтом» появились возможность регистрироваться и восстанавливать пароль по СМС. Теперь при регистрации наравне с почтовым ящиком можно использовать и номер мобильного телефона.

Рассмотрим пошагово, как настроить этот полезный функционал:

  1. Сначала

    установите и настройте


    Прежде всего, не забудьте установить этот модуль.

    Настройка модуля осуществляется в Административном разделе (Настройки >Настройки продукта > Настройки модулей > Служба сообщений).

    Подробнее…




    модуль Служба сообщений, привязав одну из служб сообщений.

  2. Далее укажите в настройках Главного модуля службу отправки СМС по умолчанию и выберите соответствующий номер отправителя (Настройки >Настройки продукта > Настройки модулей > Главный модуль (Почта и СМС)):

  3. И в завершении перейдите на вкладку Авторизация и разрешите регистрацию пользователей по номеру телефона, при необходимости сделав это поле обязательным (Настройки >Настройки продукта > Настройки модулей > Главный модуль (Авторизация)):

    Подробнее о настройке остальных полей (по желанию) можете прочитать в

    документации по продукту.


    Настройки Главного модуля, закладка «Авторизация».

    Подробнее…



    Примечание: Не забудьте, что в России при сборе личных данных требуется обязательное согласие пользователя на обработку его персональных данных, поэтому

    настройте соглашение






    на обработку персональных данных (можете выбрать существующее соглашение или

    создать новое


    На странице Соглашения (Настройки > Настройки продукта > Соглашения) выводятся все созданные и используемые соглашения и с неё же можно перейти к списку полученных соглашений от пользователей.

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

    Подробнее…




    ).

Готово! Теперь регистрация пользователей будет осуществляться по номеру мобильного телефона.

Документация по теме:

  • Настройки главного модуля (закладка «Почта и СМС»)
  • Настройки главного модуля (закладка «Авторизация»)

Краткая информация

Модуль позволяет организовать на сайте авторизацию, регистрацию по номеру телефона. Опционально доступна авторегистрация при подтверждении номера телефона.

Установка модуля производиться из маркетплейса 1С-Битрикс — http://marketplace.1c-bitrix.ru/solutions/bxmaker.authuserphone/

Авторизация

Для входа на сайт доступны следующие варианты:

  • Логин + пароль
  • Email + пароль
  • Номер телефона + пароль
  • Номер телефона + код из смс
  • Номер телефона + звонок от робота
  • Номер телефона + звонок от пользователя

Если пользователь не существует и включена авторегистрация, то автоматически создастся профиль пользователя, как будто он регистрировался ранее на сайте.

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

Существующие пользователи

Существующие пользователи также смогут входить а сайт по своим учетным данным

  • Логин + Пароль
  • Email + пароль

После подготовки профилей, выполнив автозаполнение номерами телефонов, существующие пользователи также смогут входит по:

  • Номер телефона + пароль
  • Номер телефона + код из смс
  • Номер телефона + звонок от робота
  • Номер телефона + звонок от пользователя

Регистрация

Для регистрации пользователей в компонентах модуля выводится соответствующая форма. Которая содержит
следующие поля:

  • Номер телефона — обязательно
  • Логин — опционально
  • Email — опционально
  • Пароль — опционально

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

При регистрации Номер телефона требуется подтвердить в зависимости от настроек любым из способов:

  • Временный код из смс
  • Звонок от робота
  • Звонок от пользователя

Восстановление доступа

По номеру телефона

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

По Email

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

Защита от подбора,сливания бюджета

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

В настройках задаются лимиты с привязкой к номеру телефона и отдельно к IP адресу

  • Лимит на количество попыток запросить подтверждение, например код в смс
  • Лимит на количество проверок, например смс кода

При достижении некоторых лимитов возможен запрос ввода символов с картинки — captcha. А также при достижении отдельных лимитов возможна блокировка запросов проверок и/или проверки кодов с привязкой к IP адресу. В таком случае все действия будут отклоняться. Время блокировки и лимиты задаются в настройках.

Компоненты

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

К примеру компонент bxmaker:authuserphone.login содержит возможность подтвреждения только с помощью смс кода. Остальные компоненты поддерживаются все варианты подтвреждений.

Рекомендуется использовать компонент:

  • bxmaker:authuserphone.simple — упрощенный компонент входя без регистрации, в котором запрашивается только номер телефона.
  • bxmaker:authuserphone.enter — компонент который содержит максимум функционала в себе, включая авторизацию всеми доступными способами, регистрацию, восстановление доступа.

Компонент bxmaker:authuserphone.edit рекомендуется размещать в профиле, чтобы была возможность у пользователей сменить свой номер телефона.

Список возможностей настройки модуля

Перечислим некоторые возможности, они включаются и отключаются в настройках модуля:

  • Вход по [логину, email, номер телефона] + пароль
  • Вход по номер телефона + [пароль, смс код, звонок от бота, звонок от пользователя]
  • Авторегистрация при входе по номеру телефона + [смс код, звонок от бота, звонок от пользователя]
  • Регистрация по Номеру телефона* [Логин, Email, Пароль] + [смс код, звонок от бота, звонок от пользователя]
  • Переадресация на странице профиля после входа/регистрации если часть полей профиля не заполнена
  • Отправка пароля в смс
  • Смена пароля при входе с помощью телефона и подтверждения
  • Лимиты на количество запросов и проверок по номеру телефона и IP
  • Переключение между сервисами подтверждений — смс сервисы, звонок от робота и тп
  • Можно установить длину пароля и временного кода;
  • Можно запретить восстанавливать доступ к сайту по email;
  • Можно изменить длину временного кода;
  • Можно изменить время действия временного кода;
  • Можно изменить интервал между возможностью отправки смс повторно с кодом;
  • и тд.

Открытый исходный код дает возможность расширять функциональность, используя документацию.

Технические данные

Дата публикации:

10.02.2016

Дата обновления:

29.12.2022

Число установок:

Более 1000 раз

Совместимые редакции

  • Старт
  • Стандарт
  • Малый бизнес
  • Бизнес
  • Лицензия на 1С-Битрикс24: Интернет-Магазин + CRM
  • Лицензия на «1C-Битрикс24» (Корпоративный портал, 25 пользователей)
  • «Битрикс24» в коробке — Энтерпрайз

Описание

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

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

Замена форм авторизации регистраций в готовых решениях  занимает от 5 минут до пары часов (в сложных решениях). Есть готовые примеры в документации.

1. Поддерживаемые сервисы

Уже встроено в модуль 15 сервисов + свыше 70 смс сервисов при использовании вместе с модулем — СМС Оповещения

2. Способы подтверждений

Может использоваться как один так и несколько способов подтверждений. Пользователь сможет переключаться между ними.

2.1. SMS код

На номер телефона отправляется временный код

2.2 Звонок от робота

Способ при котором на указанный телефон поступает звонок, в последних 4-6 цифрах номера телефона которого находит временный код

2.3 Голосовой код, VoicePassword

При этом способе на указанный номер телефона поступает звонок,  при ответе на который, робот произносит временный код

2.4 Звонок от пользователя
При этом способе выводится номер телефона на который должен позвонить пользователь с указанного номера телефона.

Если на сайте установлен и работает модуль Push and Pull, то авторизация на странице дальше происходит автоматически без нажатия кнопки Готово пользователем.

2.5 Sim-push, PushOK

При этом способе на телефоне с номером, указанным пользователем, всплывает окно с надписью Подтвердите номер телефона и две кнопки — Принять и Отклонить.

Если на сайте установлен и работает модуль Push and Pull, то после нажатия на кнопку Принять на телефоне,  авторизация на странице дальше происходит автоматически без нажатия кнопки Готово пользователем.

3. Основные компоненты

3.1 Simple

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

3.2 Enter

Компонент который содержит больше всего логики

Авторизация  / Вход

  • Логин+пароль
  • Email+пароль
  • Телефон + пароль
  • Телефон + любой из способов подтверждений
  • Авторегистрация по номеру телефона + любой из способов подтверждений

Восстановление доступа

  • Email
  • Телефон + любой из способов подтверждений

Регистрация
Обязательно для заполнения поле

  • Телефон

Могут отображаться, могут не отображаться, могут быть обязательными для заполнения могут быть и НЕ обязательными для заполнения поля

  • ФИО
  • Логин
  • Email
  • Пароль

3.3 Edit

Компонент размещается в профиле пользователя, чтобы он мог указать и подтвердить новый номер телефона

3.4 Login, Call
Старые компоненты — не рекомендуется использовать

  1. Соответствует ФЗ-152 О персональных данных
  2. Что делать с профилями существующих пользователей
  3. Авторизация / регистрация по номеру телефона при оформлении заказа
  4. Настройка отправки смс, звонков роботу, звонка отробота.
  5. Использование штатного механизма Битркиса для отправки СМС
  6. Пример замены для решенияАспро Максимум

Подробнее написано в документации https://bxmaker.ru/doc/authuserphone/

Телефоны стали для пользователей лучшими друзьями. Без них уже давно не выходят из дома. А некоторые выходят в онлайн только через смартфон. Поэтому в Аспро: Next, начиная с версии 1.4.5, появились авторизация, регистрация и восстановление пароля через SMS. Подключайте новый функционал, чтобы улучшить удобство пользования для посетителей сайта.

Продемонстрировали подключение функционала в нашем видео:

Авторизация через телефон.

Восстановление пароля через телефон.

Настройка авторизации, регистрации и восстановления пароля через SMS

1. Установка модуля «Служба сообщений (messageservice)»

В административной части сайта перейдите в Настройки → Настройки продукта → Модули. В поле с названием «Служба сообщений (messageservice)» кликните кнопку «Установить».

2. Регистрация на сайте службы отправки SMS

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

  • SMS.RU
  • SMS-ассистент
  • Twilio.com

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

3. Интеграция с сервисами

Для настройки интеграции сайта со службой отправки SMS, перейдите в Настройки → Настройки продукта → Настройки модулей → Служба сообщений. В поле «Службы отправки SMS» кликните по выбранной службе. Например, «Компания SMS.RU».

Важно! Поля «Идентификатор партнера компании SMS.RU» и «Секретный ключ партнера компании SMS.RU» будут заполнены автоматически, и их не нужно менять. Смысл остальных полей понятен интуитивно.

4. Форма регистрации

На странице интеграции заполните форму и нажмите кнопку «Зарегистрироваться».

5. Ввод кода подтверждения

После заполнения формы регистрации на телефон придет код подтверждения. Введите его в поле ниже и кликните кнопку «Подтвердить».

6.  Проверка работы

Протестируйте отправку СМС на свой номер

7. Выбор номера отправителя

Перейдите в Настройки → Настройки продукта → Настройки модулей → Главный модуль на вкладку «Почта и СМС». В поле «Служба отправки СМС по умолчанию» выберите подключенный сервис. В Поле «Номер отправителя по умолчанию» выберите соответствующий номер телефона.

8. Регистрация и авторизация по номеру телефона

Если в настройках главного модуля поле «Регистрировать пользователей по номеру телефона» будет активировано, то номер телефона будет необходим не только для уточнения деталей заказа, но и для восстановления доступа к сайту.

Для этого в настройках главного модуля перейдите на вкладку «Авторизация». Активируйте галку в поле «Регистрировать пользователей по номеру телефона».

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

Для авторизации на сайте по номеру телефона установите опцию «Авторизация по номеру телефона» в настройках модуля решения. Перейдите в настройки модуля решения: Аспро → Аспро: Next → Настройки. Активируйте поле «Авторизация по номеру телефона» и сохраните изменения.

Важно!

1. Все коды, отправляемые в СМС действительны только в течение 1 минуты после генерации.

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

В блог

Начиная с версии 18.5.0 в 1С-Битрикс добавлена поддержка СМС-служб, для штатной авторизации, регистрации и восстановления пароля с помощью СМС.

Из коробки на данный момент поддерживаются следующие службы отправки SMS: Компания SMS.RU, SMS-ассистент, Компания Twilio.com.

Если вы используете одну из этих компаний, обновляйте 1С-Битрикс до необходимой версии, установите модуль Служба сообщений, укажите данные для подключения к СМС-сервису и в настройках Главного модуля у вас должно появиться следующее:

smsru.png

Добавление СМС-сервиса

Если вы хотите добавить собственный СМС-сервис, для начала необходимо создать класс СМС-сервиса, который будет наследовать класс BitrixMessageServiceSenderBase, с обязательными методами:

  • getShortName(): string — Сокращенное наименование сервиса (например, домен)
  • getId(): string — Символьный код сервиса
  • getName(): string — Полное наименование сервиса (будет выводиться во всех списках)
  • canUse(): boolean — Если false – сервис не будет выводиться
  • getFromList(): array — Список подтвержденных имен отправителя
  • sendMessage(): BitrixMessageServiceSenderResultSendMessage — Отправка сообщения

Примерный код базового СМС-сервиса:

<?php

namespace PsSmsProvider;

use BitrixMainError;
use BitrixMessageServiceSenderBase;
use BitrixMessageServiceSenderResultSendMessage;

class Smsc extends Base
{
    private $login;

    private $password;

    private $client;

    public function __construct() {
        $this->login = 'login';
        $this->password = 'my_strong_password';

        $this->client = new SmscApi($this->login, $this->password);
    }

    public function sendMessage(array $messageFields) {
        if (!$this->canUse()) {
            $result = new SendMessage();
            $result->addError(new Error('Ошибка отправки. СМС-сервис отключен'));
            return $result;
        }

        $parameters = [
            'phones' => $messageFields['MESSAGE_TO'],
            'mes' => $messageFields['MESSAGE_BODY'],
        ];

        if ($messageFields['MESSAGE_FROM']) {
            $parameters['sender'] = $messageFields['MESSAGE_FROM'];
        }

        $result = new SendMessage();
        $response = $this->client->send($parameters);

        if (!$response->isSuccess()) {
            $result->addErrors($response->getErrors());
            return $result;
        }

        return $result;
    }

    public function getShortName() {
        return 'smsc.ru';
    }

    public function getId() {
        return 'smscru';
    }

    public function getName() {
        return 'SMS-центр';
    }

    public function canUse() {
        return true;
    }

    public function getFromList() {
        $data = $this->client->getSenderList();
        if ($data->isSuccess()) {
            return $data->getData();
        }

        return [];
    }
}

После того, как мы создали класс, необходимо его зарегистрировать в обработчике события:

<?php

$event = BitrixMainEventManager::getInstance();
$event->addEventHandler('messageservice', 'onGetSmsSenders', 'registerSmscService');

function registerSmscService() {
    return [
        // Класс нашего СМС-сервиса
        new Smsc(),
    ];
}

После этого в настройках Главного модуля должен появиться наш СМС-сервис

smsc.png

Пример

Примеры СМС-сервисов: sms16.ru, smsc.ru и mainsms.ru на GitHub.

Присылайте пулл-реквесты с вашими СМС-сервисами – обязательно добавим :)

API

Отправка сообщения

Для того, чтобы отправить сообщение с СМС кодом подтверждения регистрации, выполним следующий код:

<?php

$userId = 1;
$phone = BitrixMainUserPhoneAuthTable::normalizePhoneNumber('+79999999999');

BitrixMainUserPhoneAuthTable::add([
    'USER_ID' => $userId,
    'PHONE_NUMBER' => $phone,
]);

list($code, $phoneNumber) = CUser::GeneratePhoneCode($userId);

$sms = new BitrixMainSmsEvent(
    'SMS_USER_CONFIRM_NUMBER', // SMS_USER_RESTORE_PASSWORD - для восстановления
    [
        'USER_PHONE' => $phoneNumber,
        'CODE' => $code,
    ]
);
$sms->send(true);

Подтверждение номера телефона

Для того, чтобы проверить введенный код:

<?php

$phoneRecord = BitrixMainUserPhoneAuthTable::getList([
    'filter' => [
        '=USER_ID' => 1
    ],
    'select' => ['USER_ID', 'PHONE_NUMBER', 'USER.ID', 'USER.ACTIVE'],
])->fetchObject();

if(!$phoneRecord) {
    // Ошибка. Пользователь не найден
}

$smsCode = 1111;

if(CUser::VerifyPhoneCode($phoneRecord->getPhoneNumber(), $smsCode)) {
    if($phoneRecord->getUser()->getActive() && !$USER->IsAuthorized()) {
        $USER->Authorize($userId);
    }

    return true;
}

  • Битрикс 24 звонки с телефона
  • Биткоин как майнить на телефоне андроиде
  • Биткоин заставка на телефон
  • Бит такси лосино петровский телефон
  • Бит иркутск телефон первый