2016-11-03 21 views
2

レスポンスを返さない関数でクッキーを設定しようとしています。関数はミドルウェアから呼び出されます。レスポンスなしで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('name', 'value', $minutes); 

しかし、それは送信されませんレスポンスインスタンスにアタッチされていない場合は、クライアントに戻ります。畜生

$response = $next($request); return $response->cookie($cookie); 

以下の未テストコードのようなミドルウェアから

関連する問題