Урок 41. Практикум 9: Аутентификация в 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— глобальная и поуровневая настройка, заголовок BasicTokenAuthentication—rest_framework.authtoken,obtain_auth_token, заголовок TokenJWTAuthentication(SimpleJWT) — установка пакета, маршруты, SIMPLE_JWT-настройки, заголовок BearerIsAuthenticated,IsAuthenticatedOrReadOnly,IsAdminUser— permission-классы- Тестирование через Postman: передача заголовков, получение токенов, проверка доступа
📚 Что повторить перед изучением
- ← Урок 40: Введение в аутентификацию и авторизацию
- DRF: Generic Views —
ListCreateAPIView,RetrieveUpdateDestroyAPIView - DRF: ViewSets,
ModelViewSet, DefaultRouter - Модели store:
Product,ProductDetail,Supplier,Order - HTTP-заголовки:
Authorization, Base64, Bearer
🎯 Что изучать дальше
- → Урок 42: Permissions и Signals
- Custom permissions — создание своих классов на основе
BasePermission - Object-level permissions — проверки на уровне объекта в
has_object_permission() - JWT: кастомизация claims, кастомный сериализатор токена, blacklist