Search by

phpsoftbox / cookie

inspector-who

There is no license information available for the latest version (v1.0.0) of this package.

Cookie component for the PhpSoftBox framework

Package info

github.com/phpsoftbox/cookie

pkg:composer/phpsoftbox/cookie

Statistics

Installs: 301

Dependents: 3

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-09-29 10:23 UTC

This package is auto-updated.

Last update: 2026-09-29 11:51:38 UTC


README

Компонент для работы с Cookie и Set-Cookie.

Пример

use PhpSoftBox\Cookie\CookieJar;
use PhpSoftBox\Cookie\SetCookie;

$cookies = CookieJar::fromHeader('a=1; b=2');

$setCookie = SetCookie::create('sid', 'token')
    ->withHttpOnly(true)
    ->withSecure(true);

$headers = CookieJar::toHeaders([$setCookie]);

Middleware

use PhpSoftBox\Cookie\CookieMiddleware;
use PhpSoftBox\Cookie\CookieQueue;
use PhpSoftBox\Cookie\SetCookie;

$queue = new CookieQueue();
$middleware = new CookieMiddleware($queue);

$queue->queue(SetCookie::create('token', 'abc'));

Шифрование cookie

Можно включить шифрование значений cookie через phpsoftbox/encryptor. Для исключений (например, сессионная cookie или XSRF-TOKEN) передайте список except.

use PhpSoftBox\Cookie\CookieMiddleware;
use PhpSoftBox\Cookie\CookieQueue;
use PhpSoftBox\Encryptor\Encryptor;

$encryptor = new Encryptor(defaultKey: $_ENV['APP_KEY'] ?? null);

$middleware = new CookieMiddleware(
    queue: new CookieQueue(),
    encryptor: $encryptor,
    except: ['XSRF-TOKEN', 'psb_session'],
);

Зашифрованное значение привязано к имени cookie (связанные данные cookie:<имя>): значение одной cookie не расшифруется под именем другой. Значения, зашифрованные до версии 1.0, после обновления не расшифровываются — такие cookie отбрасываются, пользователю придётся войти заново.

Долгоживущие процессы

CookieQueue обычно общий на процесс (синглтон контейнера). CookieMiddleware очищает очередь в начале запроса и забирает её в finally: cookie запроса, завершившегося исключением, не уходят следующему пользователю.

Проверка атрибутов

SetCookie отклоняет (InvalidArgumentException) имя вне token из RFC 6265 (пробелы, ;, =, CR/LF), путь с ; или управляющими символами и домен, который не является именем хоста.