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

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

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

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

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

account-settings

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

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

account-edit

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

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

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

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

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

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

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

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

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

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

Drupal node, объект публикаций в друпал

Ноябрь 8, 2015 г.

Drupal - это прежде всего CMS, т.е. система управления контентом. Поэтому все в drupal так или иначе связано с главным объектом системы - с нодами (nodes). Опросы, статьи, разделы сайта, голосования и публикации в форуме - это все экземпляры объекта node, ...

Читать

The installed version of the /Имя модуля/ module is too old to update

Октябрь 9, 2024 г.

При выполнении drush updb вы можете увидеть такое сообщение. Обычно это связано с обновлением модуля до следующей major версии. Тогда в модуле может быть прописан hook_update_last_removed, где прописан номер hook_update, ниже которого номерные ...

Читать

Пишем карту сайта под Drupal 7

Июль 23, 2016 г.

Нужна ли HTML карта сайта или нет - это науке не известно. Как минимум она нужна SEO - специалистам. :) В простейшем случае, карта сайта - это портянка урлов всех публикаций, т.н. плоский список. Иерархическая карта (в виде дерева) обычно базирует ...

Читать

Drupal "семерочка"

Май 10, 2011 г.

За период примерно в год я собрал около 100-150 сайтов на drupal 6. Но в январе 2011 года была выпущена седьмая версия, и постоянно крутились мысли - как бы поглядеть : что есть сиё. При этом нет какой то насущной необходимости, т.к. подборка модулей ...

Читать
 

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

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



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