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

Метод withSecure класса Cookie

Метод withSecure класса Cookie возвращает новый экземпляр cookie с установленным флагом Secure. По умолчанию метод принимает значение true, что означает, что браузер будет отправлять cookie только по защищённому протоколу HTTPS. Если передать false, флаг снимается, и cookie может передаваться по обычному HTTP.

Класс Cookie является неизменяемым (immutable), поэтому метод не изменяет текущий объект, а возвращает его копию с новым значением флага. Это позволяет безопасно настраивать cookie в цепочке вызовов.

Синтаксис

public function withSecure(bool $secure): static

Параметр $secure определяет, должен ли cookie передаваться только по HTTPS. Если параметр равен true, флаг Secure устанавливается. Если false - флаг снимается.

Пример

Давайте создадим cookie с флагом Secure и выведем его значение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CookieController extends AbstractController { #[Route('/cookie/secure', name: 'cookie_secure')] public function index(): Response { $cookie = Cookie::create('user_token') ->withValue('abcde') ->withSecure(true); $res = new Response('cookie set'); $res->headers->setCookie($cookie); return $res; } } ?>

В результате выполнения кода браузер получит заголовок Set-Cookie с флагом Secure:

Set-Cookie: user_token=abcde; secure

Пример

Давайте снимем флаг Secure, передав в метод false:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CookieController extends AbstractController { #[Route('/cookie/insecure', name: 'cookie_insecure')] public function index(): Response { $cookie = Cookie::create('user_token') ->withValue('abcde') ->withSecure(false); $res = new Response('cookie set'); $res->headers->setCookie($cookie); return $res; } } ?>

В результате выполнения кода флаг Secure будет отсутствовать в заголовке:

Set-Cookie: user_token=abcde

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

  • класс Cookie,
    который представляет собой объект cookie
  • метод create,
    который создаёт новый экземпляр cookie
  • метод withValue,
    который задаёт значение cookie
  • метод withHttpOnly,
    который запрещает доступ к cookie из JavaScript
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить