2016-11-03 2 views
2

응답을 반환하지 않는 함수에 쿠키를 설정하려고합니다. 이 함수는 미들웨어에서 호출됩니다.응답없이 Laravel 5+에 쿠키를 설정하십시오.

미들웨어 : I가 인증에 응답을 반환하는 것을 시도했다

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

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

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

은 $ userService-를 호출은> 인증합니다. 나는 그것을 작동시킬 수 없다. 그래서 나는 모든 도움에 감사한다!

답변

2

당신은으로 queue()을 사용할 수 있습니다 사전에

감사합니다 : 당신이 쿠키 도우미를 사용하여 쿠키 인스턴스를 생성 할 수 있습니다

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

테스트되지 않은 코드

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

이하로하는 것이 젠장 같은 미들웨어에서 보내십시오, 나는 쿠키 :: 큐가 Laravel 5 제거 된 것을 읽을 수 있지만 그것은 확실히 작품! 고맙습니다 – Glidarn

0

according to docs,

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

그러나이 전송되지 않습니다 응답 인스턴스에 첨부되지 않은 경우 클라이언트로 되돌아갑니다.

관련 문제