Авторизация пользователей в 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 content type system, которая позволяет связывать разрешения с созданными вами моделями.
и эти пункты в настройке 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.1/topics/auth/index/