РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
375 of 818 menu

Метод set_signed_cookie

Метод set_signed_cookie применяется к объекту HttpResponse и позволяет установить подписанную cookie, которая будет отправлена клиенту. Подпись гарантирует, что данные не были изменены на стороне клиента, так как сервер проверяет подпись при получении cookie обратно. Метод принимает обязательные параметры: ключ (имя cookie), значение и необязательные параметры для настройки срока действия и безопасности. Подписанные cookie особенно полезны для хранения чувствительных данных, которые должны быть защищены от подделки.

Синтаксис

response.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None)

Параметры

Метод принимает следующие параметры:

  • key - имя cookie (строка)
  • value - значение cookie (любой тип, поддерживающий сериализацию)
  • salt - строка для дополнительной защиты подписи (по умолчанию пустая)
  • max_age - время жизни cookie в секундах (по умолчанию None)
  • expires - дата истечения срока действия (объект datetime)
  • path - путь, для которого действительна cookie (по умолчанию '/')
  • domain - домен, для которого действительна cookie
  • secure - отправлять только по HTTPS (по умолчанию False)
  • httponly - запретить доступ через JavaScript (по умолчанию False)
  • samesite - режим SameSite ('Strict', 'Lax' или 'None')

Пример . С установкой простой подписанной cookie

Давайте установим подписанную cookie с именем пользователя в представлении:

from django.http import HttpResponse def set_username_cookie(request): response = HttpResponse("Cookie установлена") response.set_signed_cookie('username', 'john_doe') return response

После этого клиент получит cookie, подписанную сервером. При следующем запросе сервер сможет проверить подпись с помощью метода get_signed_cookie.

Пример . С защитой от подделки

Используем параметр salt для дополнительной защиты подписи:

from django.http import HttpResponse def set_protected_cookie(request): response = HttpResponse("Защищенная cookie") response.set_signed_cookie( 'user_id', 12345, salt='secret_salt_for_user_id' ) return response

Пример . С ограничением срока действия

Установим cookie, которая будет действовать только 30 секунд:

from django.http import HttpResponse def set_temporary_cookie(request): response = HttpResponse("Временная cookie") response.set_signed_cookie( 'temp_data', 'value_for_30_seconds', max_age=30 ) return response

Результат выполнения кода:

"Cookie установлена с сроком действия 30 секунд"

Пример . С настройкой безопасности

Установим защищенную cookie с флагами безопасности:

from django.http import HttpResponse def set_secure_cookie(request): response = HttpResponse("Безопасная cookie") response.set_signed_cookie( 'session_id', 'abc123xyz', secure=True, httponly=True, samesite='Strict' ) return response

Пример . С использованием datetime для expires

Установим cookie с явной датой истечения:

from django.http import HttpResponse from datetime import datetime, timedelta def set_expiring_cookie(request): response = HttpResponse("Cookie с датой истечения") expiry_date = datetime.now() + timedelta(days=1) response.set_signed_cookie( 'expiring_cookie', 'will_expire_tomorrow', expires=expiry_date ) return response

Смотрите также

  • метод set_cookie,
    который устанавливает обычную cookie без подписи
  • метод delete_cookie,
    который удаляет cookie на клиенте
  • атрибут COOKIES,
    который содержит все полученные cookie
  • класс HttpResponse,
    который представляет HTTP-ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить