Авторизация пользователей в Django
Django поставляется с системой аутентификации пользователей. Она обрабатывает учетные записи пользователей, группы, разрешения и сессии пользователей на основе cookie. В этом разделе документации объясняется, как работает реализация по умолчанию, а также как ее можно расширить и настроить в соответствии с потребностями вашего проекта.
Обзор
Система аутентификации Django обрабатывает как аутентификацию, так и авторизацию. Вкратце, аутентификация проверяет, является ли пользователь тем, за кого он себя выдает, а авторизация определяет, что аутентифицированный пользователь может делать. Здесь термин «аутентификация» используется для обозначения обеих задач.
Система аутентификации состоит из:
- Пользователей
- Разрешений: бинарные (да/нет) флаги, определяющие, может ли пользователь выполнить определенную задачу.
- Групп: общий способ применения меток и разрешений к нескольким пользователям.
- Настраиваемой системы хэширования паролей
- Формы и инструменты представления для входа пользователей или ограничения доступа к контенту
- Подключаемой системы бэкенда
Система аутентификации в Django имеет очень общий характер и не предоставляет некоторые функции, обычно встречающиеся в системах веб-аутентификации. Решения для некоторых из этих распространенных проблем реализованы в сторонних пакетах:
- Проверка сложности паролей
- Ограничение попыток входа
- Аутентификация по сторонним сервисам (например, OAuth)
- Разрешения на уровне объектов
Установка
Поддержка аутентификации включена как модуль Django contrib в django.contrib.auth. По умолчанию необходимая конфигурация уже включена в settings.py, созданную django-admin
startproject, эти параметры включают два пункта, указанные в настройке INSTALLED_APPS:
-
'django.contrib.auth'содержит ядро фреймворка аутентификации и его модели по умолчанию. -
'django.contrib.contenttypes'— система типов содержимого Django система типов содержимого, которая позволяет связывать разрешения с моделями, которые вы создаете.
и эти элементы в настройке MIDDLEWARE:
-
SessionMiddlewareуправляет сессиями между запросами. -
AuthenticationMiddlewareсвязывает пользователей с запросами, используя сессии.
При наличии этих настроек выполнение команды manage.py migrate создает необходимые таблицы базы данных для моделей аутентификации и разрешений для любых моделей, определенных в установленных приложениях.
Использование
Использование реализации Django по умолчанию
- Работа с объектами User
- Разрешения и авторизация
- Аутентификация в веб-запросах
- Управление пользователями в админке
Ссылка на API для реализации по умолчанию
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.2/topics/auth/index/