📝 Задания — Урок 44
⚡ Задания урока (5 вопросов)
Вопросы из лекции для проверки понимания темы. Ответы — в Решениях.
Задания для закрепления
Вопросы из лекции — выберите один правильный ответ для каждого вопроса. Ответы с объяснениями — в разделе Решения.
Попробуйте ответить на все вопросы самостоятельно, прежде чем смотреть решения. Уделите особое внимание вопросам 2 и 3 — они касаются ключевых механизмов middleware.
Вопрос 1
Что делает метод set_cookie объекта Response?
- Удаляет токены из куки.
- Сохраняет токены в куки.
- Обновляет токены в базе данных.
- Проверяет срок действия токена.
Вопрос 2
Как реализуется автоматическое использование JWT токенов из куки в запросах?
- Использование формы для ручного ввода токенов в каждом запросе.
- Создание middleware для извлечения токенов из куки и добавления их в заголовок Authorization.
- Запрос токенов в каждом запросе через базовую аутентификацию.
- Хранение токенов в локальном хранилище браузера.
Вопрос 3
Что происходит, если токен доступа истекает при использовании middleware для JWT?
- Токен доступа обновляется с использованием токена обновления, если он доступен и действителен.
- Пользователь перенаправляется на страницу логина.
- Токен доступа автоматически удаляется.
- Запросы продолжаются без аутентификации.
Вопрос 4
Какое преимущество использования RefreshToken в JWT?
- Устраняет необходимость в токенах доступа.
- Позволяет обновлять токен доступа без повторной аутентификации пользователя.
- Позволяет хранить информацию о сессии на сервере.
- Обеспечивает постоянное обновление данных о пользователе.
Вопрос 5
Что делает delete_cookie объекта Response?
- Обновляет срок действия куки.
- Удаляет токены из куки.
- Обновляет токены доступа и обновления.
- Проверяет валидность токенов.
Дополнительные задания (практика)
Задание A: Расширить RegisterSerializer
Добавьте в RegisterSerializer:
- Валидацию уникальности email
- Проверку минимальной длины пароля (8 символов)
- Поле
password_confirmс проверкой совпадения паролей
Задание B: Улучшить LogoutView
Реализуйте LogoutView, который:
- Помещает refresh-токен из куки в blacklist перед удалением
- Корректно обрабатывает случай, если токен уже истёк (не падает с исключением)
Задание C: Кастомный payload
Добавьте в JWT-токен дополнительные поля: email и is_staff пользователя.
Подсказка: переопределите метод get_token в кастомном классе, наследующем от TokenObtainPairSerializer.