Авторизация по номеру телефона в Drupal

Распространение сотовой связи сделало уместным идентификацию пользователя по номеру телефона. Этот номер стал на ряду с логином и адресом электронной почты одним из уникальных параметров в профиле. Большинство социальных сетей позволяют не только привязать номер телефона к учетной записи, но и использовать его как пару логин-пароль при входе в аккаунт.

Далее я покажу как сделать авторизацию по номеру телефона в Drupal (версии 7).

Я уже рассказывал как сделать авторизацию по email в drupal. Подход ничуть не изменился.

Телефон не является дефолтным параметром учетки, поэтому соответствующее поле нужно добавить. Шагаем на страницу /admin/config/people/accounts/fields, где добавляем поле для ввода телефона.

account-settings

Я показываю создание поля с той целью, чтобы потом не пояснять структуру запроса к базе, т.к. имя поля определяет имя таблицы в базе — у нас это будет таблица field_data_field_tel.

Когда поле создано, его значение можно задать на странице профиля.

account-edit

Структура готова, напишем код, использующий для авторизации номер телефона. Кроме номера телефона, пусть будет возможна авторизация и по email, как было в примере, на который я ссылался выше. Но сейчас код будет адаптирован для Drupal 7.

Этот код не обернут в какую либо функцию, он размещается в любом вашем модуле. Цель — вычислить до обработки данных формы авторизации имя пользователя по введенному телефону или адресу электронной почты.

Этот вариант вполне будет работать, и его можно применять в каких то проектах. Но он имеет ряд проблем.

Нормализация номера телефона

Первое, с чем можно столкнуться, это правила написания номера телефона. Его можно записывать по разному, с пробелами и скобками, начиная с «+7» или «8», использовать дефисы и т.п. Пользователь в итоге может забыть, как он ввел номер в своем профиле. Ему не удастся войти, хоть он и укажет свой номер телефона, т.к. строка в базе не будет соответствовать введенному значению.

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

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

Вот какой может быть логика получения нормализованного номера телефона.

Как и где сохранять нормализованное представление решать уже вам.

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

Модификация формы регистрации в drupal

Март 3, 2010 г.

После установки, регистрационная форма друпала (drupal) имеет всего пару полей - login и email. В большинстве случаев это можно почитать за благо. Ибо ...

Читать

Как добавить css классы в attributes (twig, Drupal)

Май 16, 2024 г.

Порою требуется добавить свои классы в переменную attributes на уровне шаблона (в twig). Переменная attributes - это объект Drupal\Core\Template\Attribute. У него есть нужный нам метод - addClass(). Пример использования: [crayon-68f1ee2b19a0c249339923/]

Читать

Читаем курсы валют, реализация для drupal

Декабрь 5, 2012 г.

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

Читать

Скрипт экспорта в базу публикаций Drupal

Март 1, 2016 г.

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

Читать
 

Комментарии к «Авторизация по номеру телефона в Drupal»

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



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