Как добавить cookie при использовании TYPO3 Middleware?

Я хочу использовать промежуточное ПО для добавления файла cookie.

В TYPO3 у меня есть Psr\Http\Message\ServerRequestInterface $request и Psr\Http\Server\RequestHandlerInterface $handler переменные.

Как лучше всего добавить файл cookie со всеми необходимыми настройками (безопасный, домен, срок действия)?

2 ответа

Решение

В PSR нет явного интерфейса для этого, поскольку он в основном сводится к отправке Set-Cookie заголовок в $response. Вы можете создать этот заголовок самостоятельно или использовать несколько пакетов, которые сделают это за вас:

Мой рабочий код сейчас:

$cookie = \Dflydev\FigCookies\SetCookie::create($name)
    ->withValue($value)
    ->withDomain($request->getAttribute('site')->getBase()->getHost())
    ->withSecure(true);

$response = new \TYPO3\CMS\Core\Http\RedirectResponse(
    (string)$request->getUri(),
    302,
    ['Set-Cookie' => (string)$cookie]
);

Файл cookie установлен, и я перенаправляю посетителя, чтобы файл cookie также можно было прочитать, например, с помощью условия TypoScript.

Другие вопросы по тегам