На чем была сделана аутентификация на Django
Python
Junior
Без компании
На чем была сделана аутентификация на Django
Ответы
Django предоставляет встроенную систему аутентификации через модуль `django.contrib.auth`. Она включает:
- **Модель пользователя** (`User` или кастомная через `AbstractUser`/`AbstractBaseUser`).
- **Готовые views** для входа (`LoginView`), выхода (`LogoutView`), смены пароля.
- **Декораторы** (`@login_required`) и **миксины** (`LoginRequiredMixin`) для контроля доступа.
Пример:
```
from django.contrib.auth.decorators import login_required
from django.contrib.auth.views import LoginView
urlpatterns = [
path('login/', LoginView.as_view(), name='login'),
]
@login_required
def protected_view(request):
return HttpResponse("Только для авторизованных!")
```
Для REST API часто используют:
- **TokenAuthentication** (`rest_framework.authtoken`).
- **JWT** (библиотеки типа `djangorestframework-simplejwt`).
Пример JWT:
```
# settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
```