Урок 46. Summary session 8 — Финал курса

📁 Блок: Auth ⏱️ Время изучения: ~45 мин 🎯 Сложность: Средняя
#summary #auth #jwt #permissions #signals #email #swagger #финал

⚡ Кратко: суть урока

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 и всего курса.

← Вернуться к оглавлению курса