2016-11-03 6 views
2

Ich versuche, ein Cookie in einer Funktion, die keine Antwort zurückgeben wird. Die Funktion wird von einer Middleware aus aufgerufen.Setzen Sie einen Cookie in Laravel 5 + ohne Antwort

Middleware:

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

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

ruft userService- $> authentifizieren:

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

Ich habe versucht, eine Antwort in authenticate zurückzukehren, aber es doen't Arbeit. Ich kann es nicht zur Arbeit bringen. Also ich schätze jede Hilfe!

Vielen Dank im Voraus

Antwort

2

Sie queue() als verwenden können:

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

Verdammt, ich las, dass Cookie-:: Warteschlange 5 in Laravel entfernt wurde, aber es ist sicher funktioniert! Vielen Dank – Glidarn

0

according to docs Sie ein Cookie-Instanz mit den Cookie-Helfer werden können erzeugen

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

Aber es ist nicht gesendet zurück zum Client, es sei denn, es ist an eine Antwort-Instanz angehängt. Versuchen Sie, von Middleware zu senden wie unter

$response = $next($request); 

return $response->cookie($cookie); 

Ungeprüfte-Code