В Django аутентификация основана на подключаемом бэкенде, который обрабатывает пользователей, группы и разрешения.
Основные компоненты:
django.contrib.auth.models.User хранит информацию о пользователях (имя, хэшированный пароль, email и т.д.).django.contrib.auth.models.Group объединяет пользователей для упрощения управления разрешениями.django.contrib.auth.models.Permission определяет, что разрешено делать пользователю (просматривать, добавлять, изменять, удалять модели).authenticate) и авторизации (get_user, has_perm, has_module_perms). По умолчанию используется django.contrib.auth.backends.ModelBackend.Процесс аутентификации:
authenticate() настроенных бэкендов, передавая учетные данные.authenticate() возвращает объект пользователя.login() (в представлении или middleware), который устанавливает сессию для пользователя.Пример использования в представлении:
python
Основные функции и декораторы для проверки аутентификации и разрешений:
@login_required: Декоратор для представлений, требующий аутентификации пользователя.@permission_required('app_label.permission_code'): Декоратор для представлений, требующий наличия определенного разрешения.user.is_authenticated: Проверка, аутентифицирован ли пользователь.user.has_perm('app_label.permission_code'): Проверка наличия конкретного разрешения у пользователя.user.has_module_perms('app_label'): Проверка наличия разрешений на модель в определенном приложении.Настройка:
AUTHENTICATION_BACKENDS: Список зарегистрированных бэкендов. По умолчанию: ['django.contrib.auth.backends.ModelBackend'].LOGIN_URL: URL для перенаправления неаутентифицированных пользователей при использовании @login_required.LOGIN_REDIRECT_URL: URL для перенаправления после успешного входа в систему.