Как добавить 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.