НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
31 of 182 menu

Таблица authmap

Таблица authmap используется модулями аутентификации (такими как OpenID, OAuth, LDAP) для связывания идентификаторов из внешних систем с локальными учетными записями пользователей Drupal. Это позволяет пользователям входить на сайт с использованием учетных данных из внешних сервисов.

Поля

Поле Тип данных Описание
aid int Уникальный идентификатор записи (Auto-Increment). Первичный ключ таблицы.
uid int Идентификатор пользователя Drupal. Внешний ключ, ссылается на users.uid. Равен 0 для анонимных пользователей.
authname varchar(128) Уникальный идентификатор пользователя во внешней системе аутентификации (например, полный OpenID URL, email для LDAP, идентификатор социальной сети).
module varchar(128) Имя модуля, который добавил эту запись (например, openid, ldap, oauth). Определяет, какой модуль ответственен за обработку данной аутентификации.

Как это работает

Когда пользователь впервые входит на сайт через внешний сервис (например, Google, Facebook), система проверяет таблицу authmap на наличие записи с идентификатором authname для указанного модуля module.

Если запись найдена, пользователь авторизуется под соответствующей учетной записью Drupal (uid). Если запись не найдена, в зависимости от настроек модуля может быть создана новая учетная запись пользователя, и тогда в authmap добавляется новая строка, связывающая uid новой учетной записи с внешним authname.

Одна учетная запись Drupal (uid) может быть связана с несколькими идентификаторами из разных или одного и того же модуля внешней аутентификации. Это позволяет пользователю входить на сайт разными способами.

При удалении пользователя (записи из users) все связанные с ним записи в authmap также удаляются благодаря внешнему ключу с опцией ON DELETE CASCADE.

Пример SQL-запроса

Найти всех пользователей, которые аутентифицируются через модуль openid, и их внешние идентификаторы:

SELECT u.uid, u.name, a.authname FROM authmap a INNER JOIN users u ON a.uid = u.uid WHERE a.module = 'openid';

Проверить, привязан ли какой-либо аккаунт Drupal к внешнему идентификатору https://myopenid.com/user:

SELECT u.uid, u.name, a.module FROM authmap a INNER JOIN users u ON a.uid = u.uid WHERE a.authname = 'https://myopenid.com/user';

Смотрите также

  • таблицу users,
    которая хранит основные данные пользователей
  • таблицу users_field_data,
    которая содержит дополнительные поля пользователей
  • таблицу sessions,
    которая управляет пользовательскими сессиями
  • таблицу user__roles,
    которая хранит назначенные пользователям роли
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить