在Laravel 5+中设置一个cookie但没有响应

时间:2016-11-03 15:45:24

标签: php laravel

我正在尝试在不会返回响应的函数中设置cookie。该函数是从中间件调用的。

中间件:

// Verify user
        $userId = $userService->verify($email, $key);
        if ($userId) {
            $userService->authenticate($userId, $key);

            return $next($request);
        } else {
            return response('Unauthorized', 401);
        }

正在调用$ userService-> authenticate:

// Get user
    $user = $this->getById($id);
    // Get user zipcode
    $user->zipcode = $this->getZipcodeById($id);
    // Set session
    Session::set('user', $user);

    if (!Cookie::has('user_forever')) {
      // SET COOKIE   
    }

我试图在身份验证中返回响应,但它无法正常工作。我无法让它发挥作用..所以我很感激所有的帮助!

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以将queue()用作:

Cookie::queue('key', 'value', 10);

答案 1 :(得分:0)

according to docs您可以使用Cookie助手

生成Cookie实例
$cookie = cookie('name', 'value', $minutes);

但除非将其附加到响应实例,否则不会将其发送回客户端。尝试从下面的中间件发送

$response = $next($request);

return $response->cookie($cookie);

未经测试的代码