Аутентификация пользователей в Django

Django поставляется с системой аутентификации пользователей. Она обрабатывает учетные записи пользователей, группы, разрешения и пользовательские сессии на основе cookie. В этом разделе документации объясняется, как работает стандартная реализация из коробки, а также как изменить extend and customize ее в соответствии с потребностями вашего проекта.

Обзор

Система аутентификации Django обрабатывает как аутентификацию, так и авторизацию. Вкратце, аутентификация проверяет, является ли пользователь тем, за кого себя выдает, а авторизация определяет, что разрешено делать аутентифицированному пользователю. Здесь термин аутентификация используется для обозначения обеих задач.

Система авторизации состоит из:

  • Пользователи
  • Разрешения: Бинарные (да/нет) флаги, обозначающие, может ли пользователь выполнять определенную задачу.
  • Группы: Общий способ применения меток и разрешений к нескольким пользователям.
  • Настраиваемая система хеширования паролей
  • Формы и инструменты просмотра для регистрации пользователей или ограничения контента
  • Подключаемая бэкэнд-система

Система аутентификации в Django стремится быть очень общей и не предоставляет некоторые возможности, обычно встречающиеся в веб-системах аутентификации. Решения некоторых из этих общих проблем были реализованы в пакетах сторонних разработчиков:

  • Проверка надежности пароля
  • Ограничение попыток входа в систему
  • Аутентификация против третьих лиц (например, OAuth)
  • Разрешения на уровне объекта

Установка

Поддержка аутентификации поставляется в виде модуля Django contrib в django.contrib.auth. По умолчанию, необходимая конфигурация уже включена в settings.py, сгенерированную django-admin startproject, она состоит из двух элементов, перечисленных в настройках INSTALLED_APPS:

  1. 'django.contrib.auth' содержит ядро структуры аутентификации и ее модели по умолчанию.
  2. 'django.contrib.contenttypes' - это Django content type system, который позволяет ассоциировать разрешения с моделями, которые вы создаете.

и эти элементы в вашей настройке MIDDLEWARE:

  1. SessionMiddleware управляет sessions всеми запросами.
  2. AuthenticationMiddleware связывает пользователей с запросами с помощью сессий.

При наличии этих настроек, выполнение команды manage.py migrate создает необходимые таблицы базы данных для моделей, связанных с auth, и разрешений для любых моделей, определенных в установленных приложениях.

Вернуться на верх