Седьмая часть перевода документации библиотеки авторизации DX Auth для фреймворка CodeIgniter.
- CodeIgniter: библиотека DX Auth
- DX Auth: руководство пользователя. Начало
- DX Auth: Руководство пользователя. Справочник по функциям
- DX Auth: Руководство пользователя. События
- DX Auth: Руководство пользователя. Конфигурация
- DX Auth: Руководство пользователя. Модели
- DX Auth: Руководство пользователя. Анатомия таблиц
- DX Auth: Примеры. Простой пример
- DX Auth: Примеры. Расширенный пример
- DX Auth. Примеры. Пример использования reCAPTCHA
Описание таблиц и их полей, используемых в DX Auth
Таблица 'users'
Это основная таблица, в ней хранятся данные пользователей.
- id — Первичный ключ. Уникальный идентификатор пользователя
- role_id — Внешний ключ к таблице 'roles'. По умолчанию 1
- username — Имя пользователя
- password — Пароль пользователя (хэш)
- email — Адрес электронной почты пользователя
- banned — Указывает запрещён доступ пользователю или нет (1 = запрещён, 0 = не запрещён). По умолчанию 0
- ban_reason — Причина по которой пользователю запрещён доступ
- newpass — Новый пароль после запроса забытого пароля
- newpass_key — Ключ для смены пароля. Если ключ проверен функцией reset_password(), то происходит замена значения поля password на значение поля newpass
- newpass_time —Время и дата, когда был произведён запрос на сброса пароля
- last_ip — IP адрес с которого пользователь зарегистрировался. Если 'DX_login_record_ip' установлено TRUE, то каждый раз когда пользователь войдёт IP-адрес сохраняется в это поле
- last_login — Если в файле конфигурации 'DX_login_record_time' установлен TRUE, время и дата входя сохраняется в этом поле
- created —Время и дата когда запись о пользователе была создана. Позволяет определить когда пользователь был зарегистрирован
- modified — Время и дата, когда запись о пользователе была изменена
Имя пользователя не должно содержать пробелы другие символы которые могут использоваться в уязвимостях. Поэтому при проверки имени пользователя во время регистрации настоятельно рекомендуется использовать alpha_dash в проверке формы.
Таблица 'user_temp'
Таблица пользователей которые ещё не активировали свои учётные записи
- id — Первичный ключ
- username — Имя пользователя
- password — Пароль пользователя (хэш)
- email — Электронная почта пользователя
- activation_key — Ключ необходимый для активации учётной записи. Пользователи которые провели активацию удаляются из этой таблицы
- last_ip — IP адрес с которого пользователь зарегистрировался
- created — Дата и время когда запись была создана
Если 'DX_email_activation' установлено в 'TRUE', то при регистрации новых пользователей записи создаются в этой таблице, вместо таблицы 'users'. После активации учётной записи, запись перемещается из этой таблицы в таблицу 'users'.
Таблица 'user_profile'
Таблица для профилей пользователей
- id — Первичный ключ
- user_id — Внешний ключ для таблицы users
- Другие поля. Вы можете добавлять и удалять поля, в соответствии с вашими потребностями
Таблица 'user_autologin'
В этой таблице сохраняются данные автологина когда пользователь входит, для сравнения с данными cookie при автологине.
- key_id — Первичный ключ, key_id создаётся с уникальным ключём когда пользователь входит и использует опцию 'запомнить меня'
- user_id — Первичный ключ, id пользователя который использовал при входе опцию 'запомнить меня'
- user_agent — User-agent браузера в котором пользователь использовал опцию 'запомнить меня'
- last_ip — IP-адрес пользователя с которого пользователь использовал опцию 'запомнить меня'
- last_login — Дата и время когда пользователь использовал опцию 'запомнить меня'
Обычно, вам не нужно изменять данные этой таблицы.
Таблица 'roles'
Таблица содержит имена полей такие как: 'registered user', 'admin', 'moderator' и т.д.
- id — Первичный ключ
- parent_id — Ссылка на id. Означает что роль будет наследовать parent_id роль. По умолчанию 0 (нет родительской роли)
- name — Имя роли
Вы должны иметь как минимум 2 записи в таблице.
Первая запись с id = 1 должна называться 'registered user' (зарегистрированный пользователь), так как при создании записи нового пользователя, в таблице 'users', ему автоматически присваивается 'role_id = 1'.
И ещё одна запись должна называться 'admin', значение id не важно.
Если вы не планируете использовать функцию ограничения прав доступа, то вам не нужно беспокоится о parent_id, просто оставьте его равным 0. Но если вы планируете использовать функцию check_uri_permissions(), прочтите в «DX Auth: Руководство пользователя. Справочник по функциям» какой эффект имеет значение parent_id.
Таблица 'permissions'
Таблица прав доступа
- id — Первичный ключ
- role_id — Внешний ключ к таблице 'roles'
- data(text) — Права доступа. Права доступа хранятся в виде массива преобразованного в строку
check_uri_permissions(), get_permission_value(), get_permissions_value() используют данные этой таблицы. Что бы оперировать данными этой таблицы вы можете использовать функции модели permissions, или написать свои собственные. Смотрите в примерах как можно устанавливать права доступа.
Таблица 'login_attempts'
В таблице хранятся данные о попытках входа
- id — Первичный ключ
- ip_address — IP-адрес с которого кто-то пытался войти
- time — дата и время когда кто-то пытался войти
DX Auth использует данные из этой таблицы только если в файле конфигурации 'DX_count_login_attempts' установлено 'TRUE'. И если попыток входа с определённого IP-адреса было больше чем установлено в 'DX_max_login_attempts', в файле конфигурации, то они больше не будут считаться.
Таблица 'role_uri'
Устаревшая с версии 1.0.2 и выше. Используйте таблицу 'permissions'
Комментариев нет:
Отправить комментарий