Я хочу установить файл cookie в обычное промежуточное программное обеспечение Laravel. Идея состоит в том, чтобы установить значение cookie в любое время, когда пользователь посещает мой сайт через любую целевую страницу.Настройка Cookie в Laravel Custom Middleware
Так что я сделал, я создал промежуточное программное обеспечение под названием UUIDMiddleware
. Я использую это промежуточное программное обеспечение вместе с промежуточным программным обеспечением Интернета на своих маршрутах. Ниже приведен его код из промежуточного программного обеспечения.
if($request->hasCookie('uuid'))
{
return $next($request);
}
else
{
$uuid = Uuid::generate();
$response = new Response();
return $response->withCookie(cookie()->forever('uuid', $uuid));
}
Как вы можете видеть, я проверяю, существует ли файл cookie. Если нет, я передаю управление следующему запросу.
Проблема заключается в настройке файла cookie с использованием return $response
, я не могу передать управление следующему запросу. Как это разрешить?
Что происходит в этом случае, если cookie не установлен, он устанавливает cookie и появляется пустой экран. Если я обновляюсь, я вижу веб-сайт с набором файлов cookie.
Должен быть способ установить cookie с использованием промежуточного программного обеспечения в правильном направлении. Как мне это сделать?
Это, кажется, не работает больше. Вызов '$ next ($ request)' независимо от того, возвращаете ли вы его или нет, вырывается из метода handle и продолжает запрос. – Chris
@Chris Это неправда (по крайней мере, для Laravel 5.4). Вы уверены, что вы зарегистрировали промежуточное ПО? – Boyd
@Boyd промежуточное программное обеспечение было зарегистрировано. То, что мне нужно было сделать, это вернуть $ next ($ request) -> withCookie() и предоставить мой объект cookie. На самом деле кажется, что cookie не переносится, если явно не определено – Chris