Работает как в обычном Django — через cookie сессии. Подходит для браузерных клиентов.
Типы аутентификации
# settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
],
}
Session Authentication
Работает как в обычном Django — через cookie сессии. Подходит для браузерных клиентов.
class TaskViewSet(viewsets.ModelViewSet):
authentication_classes = [SessionAuthentication]
permission_classes = [IsAuthenticated]
Token Authentication
Токены хранятся в БД и передаются в заголовке Authorization: Token <key>. Подробно: установка, endpoints, автосоздание через сигналы, кастомный login — в статье Token Authentication в DRF.
JWT (JSON Web Tokens)
pip install djangorestframework-simplejwt
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
urlpatterns = [
path('api/token/', TokenObtainPairView.as_view()),
path('api/token/refresh/', TokenRefreshView.as_view()),
]
Разные аутентификации для разных ViewSet
class PublicViewSet(viewsets.ReadOnlyModelViewSet):
authentication_classes = []
permission_classes = [AllowAny]
class PrivateViewSet(viewsets.ModelViewSet):
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!