📝 Django

Аутентификация в DRF

P
Автор
PyLand Team
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
282
🌳
Уровень
Продвинутый

DRF поддерживает несколько способов аутентификации. Выбор зависит от типа клиента, модели угроз и способа развёртывания API.

Типы аутентификации

# 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)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Аутентификация в Django

Django включает полную систему аутентификации: User модель, login/logout, разрешения.

📅 30.06.2026 👁️ 281
📝

Token Authentication в DRF

Охватываемые темы: Установка, Endpoint для получения токена, Использование токена, Создание токена для пользователя.

📅 30.06.2026 👁️ 257
📝

Поиск в Django

Поиск в Django можно начать с простых ORM-фильтров, а для ранжирования и полнотекстового поиска использовать...

📅 30.06.2026 👁️ 277

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!