Как работает аутентификация в Django
Python
Middle
Без компании
Как работает аутентификация в Django
Ответы
Django предоставляет встроенную систему аутентификации через `django.contrib.auth`. Основные компоненты:
- **User модель** – хранит данные пользователей (логин, пароль, email и др.)
- **Authentication backends** – проверяют учетные данные (по умолчанию `ModelBackend`)
- **Сессии** – для хранения состояния аутентификации между запросами
Пример входа пользователя:
```
from django.contrib.auth import authenticate, login
def login_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user) # Создает сессию
return redirect('home')
else:
return HttpResponse('Invalid credentials')
```
Для защиты представлений используйте декораторы:
```
from django.contrib.auth.decorators import login_required
@login_required
def protected_view(request):
return HttpResponse('Only for auth users')
```
Пароли автоматически хэшируются (по умолчанию PBKDF2). Можно расширять User модель через `AbstractUser` или связь OneToOne.