Урок 41. Практикум 9: Аутентификация в DRF

📁 Блок: Auth ⏱️ Время изучения: ~60 мин 🎯 Сложность: Средняя
#authentication #basicauth #tokenauth #jwt #permissions #drf #практикум

⚡ Кратко: Практикум 9 — Аутентификация в DRF

13 практических задач по трём способам аутентификации и настройке разрешений в DRF. Три блока: BasicAuthentication, TokenAuthentication, JWTAuthentication — плюс финальный блок по permissions. Тестирование через Postman.

  • Задачи 1.1–1.3: BasicAuthentication — настройка, применение к представлению, тест через Postman
  • Задачи 2.1–2.4: TokenAuthentication — authtoken, obtain_auth_token, применение, заголовок Token
  • Задачи 3.1–3.4: JWT (SimpleJWT) — установка, маршруты, применение, заголовок Bearer
  • Задачи 4.1–4.3: Permissions — IsAuthenticatedOrReadOnly, IsAdminUser, остальные представления

Топ-3 ошибки: 1) Забыть rest_framework.authtoken в INSTALLED_APPS и не выполнить миграции. 2) Использовать Token вместо Bearer в заголовке JWT (и наоборот). 3) Настроить authentication/permission глобально в settings.py, но перезаписать на уровне представления другим классом.

📖 О чём этот урок

Урок 41 — практикум 9 по теме аутентификации и авторизации в Django REST Framework. Задачи взяты из лекции «Django Practicum 9». Цель — закрепить три механизма аутентификации на реальном DRF-проекте и научиться расставлять классы разрешений по представлениям.

Новый теоретический материал не вводится. Если нужно освежить теорию аутентификации — загляни в Урок 40.

Что закрепляем

  • BasicAuthentication — глобальная и поуровневая настройка, заголовок Basic
  • TokenAuthenticationrest_framework.authtoken, obtain_auth_token, заголовок Token
  • JWTAuthentication (SimpleJWT) — установка пакета, маршруты, SIMPLE_JWT-настройки, заголовок Bearer
  • IsAuthenticated, IsAuthenticatedOrReadOnly, IsAdminUser — permission-классы
  • Тестирование через Postman: передача заголовков, получение токенов, проверка доступа

📚 Что повторить перед изучением

🎯 Что изучать дальше

  • → Урок 42: Permissions и Signals
  • Custom permissions — создание своих классов на основе BasePermission
  • Object-level permissions — проверки на уровне объекта в has_object_permission()
  • JWT: кастомизация claims, кастомный сериализатор токена, blacklist