Урок 46. Summary session 8 — Финал курса
⚡ Кратко: суть урока
Summary session 8 — финальное повторение блока Auth (Уроки 40–45) и всего курса Python Advanced.
- Аутентификация vs авторизация: кто ты (проверка личности) vs что тебе можно (контроль доступа). В DRF: DEFAULT_AUTHENTICATION_CLASSES → DEFAULT_PERMISSION_CLASSES.
- Механизмы аутентификации: SessionAuthentication (куки), BasicAuthentication (Base64-заголовок), TokenAuthentication (Token <key>), JWTAuthentication (Bearer <token>).
- JWT / SimpleJWT: access + refresh токены; TokenObtainPairView, TokenRefreshView; httpOnly-куки; middleware для авто-использования; blacklist при logout.
- Разрешения: AllowAny, IsAuthenticated, IsAdminUser, IsAuthenticatedOrReadOnly; объектный уровень: BasePermission.has_object_permission(); DjangoModelPermissions; кастомные permissions в Meta.
- Сигналы Django: pre_save, post_save, post_delete; @receiver / .connect(); AppConfig.ready(); автосоздание токена при регистрации пользователя.
- Email: send_mail(); EmailBackend консольный / SMTP (Gmail); сигнал + письмо при событии.
- Swagger: drf-yasg; get_schema_view(); /swagger/ и /redoc/.
Итог: вы прошли полный курс Python Advanced — Flask, SQLAlchemy, Django, DRF, Auth. Поздравляем!
📖 О чём этот урок
Это финальный, 46-й урок курса Python Advanced. Мы проводим итоговое повторение восьмого блока — Auth (Уроки 40–45): аутентификация и авторизация в Django REST Framework, разрешения, JWT, регистрация, сигналы, email, документация Swagger.
Что повторим
- Отличие аутентификации от авторизации: порядок проверки в DRF
- SessionAuthentication, BasicAuthentication, TokenAuthentication, RemoteUserAuthentication
- JWT: структура (header.payload.signature), SimpleJWT, access и refresh токены
- Автоматическое сохранение токенов в httpOnly-куки и middleware
- Регистрация пользователя с выдачей JWT в ответе
- Встроенные разрешения: AllowAny, IsAuthenticated, IsAdminUser, IsAuthenticatedOrReadOnly
- request.user — извлечение текущего пользователя; perform_create(serializer)
- Разрешения на уровне объекта: BasePermission, has_object_permission(), IsOwnerOrReadOnly
- Разрешения модели: DjangoModelPermissions, Meta.permissions, кастомные классы
- Сигналы Django: pre_save, post_save, post_delete, m2m_changed; @receiver; AppConfig.ready()
- send_mail() и настройка EMAIL_BACKEND (консоль / SMTP)
- Swagger / drf-yasg: установка, настройка, /swagger/, /redoc/
📚 Что повторить перед изучением
🎓 Курс завершён!
Вы прошли все 46 уроков курса Python Advanced. Это финальный урок блока Auth и всего курса.