2016-11-03 4 views
2

Я пытаюсь установить cookie в функцию, которая не вернет ответ. Функция вызывается из промежуточного программного обеспечения.Установите cookie в Laravel 5+ без ответа

Middleware:

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

Я попытался вернуть ответ в Authenticate но doen't работу. Я не могу заставить его работать. Поэтому я ценю всю помощь!

Заранее спасибо

ответ

2

Вы можете использовать queue() как:

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

Черт, я прочитал, что Cookie :: Очередь была удалена в Laravel 5, но он уверен, работает! спасибо – Glidarn

0
according to docs

вы можете создать экземпляр печенья с помощью помощника печенья,

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

Но это не будет отправлен обратно к клиенту, если он не привязан к экземпляру ответа. Попробуйте отправить из промежуточного слоя, как показано ниже

$response = $next($request); 

return $response->cookie($cookie); 

Непроверенного код

Смежные вопросы