1

我想使用中间件添加 cookie。

在 TYPO3 中,我有Psr\Http\Message\ServerRequestInterface $requestPsr\Http\Server\RequestHandlerInterface $handler变量。

添加具有所有必要设置(安全、域、过期)的 cookie 的最佳做法是什么?

4

2 回答 2

2

PSR 中没有为此提供明确的接口,因为它基本上归结为Set-Cookie$response. 您可以自己构建该标头,也可以使用一些为您执行此操作的包:

于 2020-09-18T06:40:40.823 回答
2

我的工作代码现在是:

$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 已设置,我重定向访问者,因此也可以通过 TypoScript 条件读取 cookie。

于 2020-09-18T07:59:59.547 回答