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

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

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

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

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

account-settings

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

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

account-edit

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

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

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

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

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

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

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

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

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

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

Пакетная загрузка картинок в поле типа ImageField CCK (Drupal)

Декабрь 17, 2011 г.

В wordpress, к примеру, такая возможность уже есть в базовой комплектации движка. А что касается drupal-a, в 7й версии хоть и интегрировали в движок что ...

Читать

Ajax в Drupal 7

Август 31, 2015 г.

Расскажу про использование техники ajax в рамках движка Drupal. Начнем с теоретических моментов. Во-первых, чтобы получить какие то данные с веб-сайта под Drupal, нужно чтобы соответствующий адрес существовал на сайте. Во-вторых, нам не хотелось бы ...

Читать

Создание администратора через drush, Drupal 9

Сентябрь 22, 2023 г.

Полезные команды для создания пользователя с админ правами, используя drush. Для начала нужно создать пользователя (пусть это будет yury): [crayon-6a49f3b5d5482256111545/] Далее назначим ему роль администратора: [crayon-6a49f3b5d548d176726823/] ...

Читать

Получение и рендеринг списка дочерних терминов в Drupal

Апрель 27, 2023 г.

Небольшой примера кода для работы с таксономией в Drupal 10. Мы запросим дерево дочерних терминов и произведем их рендеринг. Для начала загрузим какой-либо термин [crayon-6a49f3b5d566c445089083/] Следующий шаг - получение дочерних элементов ...

Читать
 

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

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



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