【发布时间】:2016-01-11 18:54:16
【问题描述】:
我想在自定义 Laravel 中间件中设置一个 cookie。这个想法是在用户通过任何登陆页面访问我的网站时设置 cookie 值。
所以我创建了一个名为UUIDMiddleware 的中间件。我在我的路由中使用这个中间件和网络中间件。下面是它的中间件代码。
if($request->hasCookie('uuid'))
{
return $next($request);
}
else
{
$uuid = Uuid::generate();
$response = new Response();
return $response->withCookie(cookie()->forever('uuid', $uuid));
}
如您所见,我正在检查 cookie 是否存在。如果没有,我将把控制权交给下一个请求。
问题是使用return $response 设置cookie 时,我无法将控制权传递给下一个请求。我该如何解决这个问题?
在这种情况下,如果未设置 cookie,则会设置 cookie 并显示空白屏幕。如果我刷新,我会看到设置了 cookie 的网站。
必须有一种方法以正确的方式使用中间件设置 cookie。我该怎么做?
【问题讨论】:
标签: laravel laravel-5.1 laravel-5.2