2016-11-03 46 views
2

我想設置一個不會返回響應的函數的cookie。該功能是從中間件調用的。設置一個cookie在Laravel 5+沒有迴應

中間件:

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

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

被調用$ userService->驗證:

// 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 
    } 

我曾試圖返回身份驗證的迴應,但它doen't工作。我無法讓它工作..所以我讚賞所有的幫助!

在此先感謝

回答

2

您可以使用queue()爲:

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

該死的,我讀了餅乾::隊列在Laravel 5刪除,但可以肯定的作品!謝謝 – Glidarn

0

according to docs您可以使用cookie幫助生成一個cookie實例,

$cookie = cookie('name', 'value', $minutes); 

但它不會被髮送回到客戶端,除非它連接到響應實例。嘗試從中間件發送類似下面

$response = $next($request); 

return $response->cookie($cookie); 

未經測試的代碼