Авторизация пользователей в 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/4.1/topics/auth/index/