Авторизация по телефону и почте
![Авторизация по телефону и почте Авторизация по телефону и почте](/upload/iblock/90d/case-auth.jpg)
В проекте использовали
Клиент пришел с проблемой
У заказчика есть единая база клиентов онлайн и розничного магазинов. При разработке сайта процессы регистрации и авторизации для онлайн клиентов сделали через email. А клиенты розничных магазинов регистрировались по номеру телефона. В дальнейшем заказчику потребовалась прозрачная система авторизации в онлайн-магазине, чтобы розничные клиенты могли делать покупки на сайте. Но почти по всем клиентам из розницы не было адреса электронной почты, только телефон.
Проекты, которые позволяют клиенту работать с учетной записью по нескольким каналам, встречаются довольно редко. При смене политики регистрации сайты могут действовать грубо, не оставляя выбора пользователям. Например, мне однажды прислали письмо с требованием заменить email на номер телефона. Мы же все сделали незаметно для клиентов. Для них просто в какой-то момент появился новый способ авторизации.
Всегда есть особенности
Интернет-магазин заказчика разработан на базе 1C-Битрикс. На платформе есть 2 режима регистрации клиентов: стандартный — по email и дополнительный — по номеру телефона. Как правило, схема регистрации закладывается на старте проекта и не меняется в процессе работы сайта.
Так как на сайте было много зарегистрированных по email пользователей, мы не могли просто переделать процессы регистрации/авторизации на номера телефонов. Нужно было сохранить имеющийся способ регистрации по email и добавить возможность регистрации по номеру телефона с валидацией по SMS. Это дало бы возможность регистрироваться покупателям из розницы по телефону, не меняя привычек старых онлайн-покупателей.
Как мы это сделали
Для начала мы решили доработать обмен с 1С и научили его регистрировать клиентов по номеру телефона. Суть в том, что мы создаем фейковую почту и регистрируем по ней клиента, сохраняя его номер телефона. После первой авторизации клиента с фейковой почтой, мы просим его указать email в личном кабинете.
Дальше нам нужно было дать возможность таким пользователям авторизовываться на сайте. Так как авторизация проходила только по email, мы расширили стандартный механизм авторизации. Теперь при авторизации можно вводить не только электронную почту, но и номер телефона в едином поле ввода.
Следующий шаг — регистрация на сайте. После нашей доработки клиенты могут регистрироваться и по email, и по номеру телефона. С электронной почтой все было просто, потому что весь механизм уже есть. Механику регистрации по SMS мы написали сами. Заказчик заключил договор с SMS-шлюзом, который не представлен в стандартном наборе модуля службы сообщений Битрикса.
Мы не стали решать проблему костылями и написали полноценный модуль для интеграции со службой сообщений. На момент разработки у нас не было документации по теме реализации собственных интеграций со шлюзами. Поэтому мы изучили исходники Битрикса и использовали стандартную систему управления шаблонами SMS-сообщений. Сообщения с сайта заказчика отправляются штатными методами самого Битрикса.
И заключительный шаг — механизм восстановления пароля. При восстановлении клиент может использовать и телефон, и email. Если есть реальная почта — восстанавливаем по email, если нет — отправляем SMS по номеру телефона.