Laravel 5.2.11, сеансы не работают, cookie сеанса не устанавливается

Я новичок в Laravel, я узнал о моделях, видах, клинке, контроллерах и маршрутах и ​​о том, как они работают вместе. Пока все работает плавно.

Однако у меня проблемы с сеансами.

Когда я использую AuthController, который поставляется с Laravel и удаляет auth / register с помощью запроса POST, данные для пользователя, который я регистрирую, вставляются в таблицу users (используя mysql), и я возвращаю ответ с помощью «Location», переадресация заголовка в / как это происходит из коробки. Он перенаправляется так, как должен. Но в том же ответе нет набора / Set заголовка Set-Cookie. Серийная часть Laravel не работает должным образом для меня. То же самое для POST для авторизации / входа в систему, он правильно аутентифицируется и перенаправляется на страницу профиля, но в ответ не отправляется cookie сеанса.

Я использую:

  • Laravel 5.2.11
  • PHP 5.5.9
  • xubuntu 14.04 (Ubuntu)
  • Ядро Linux 3.19.0-42-generic
  • Композитор 1.0

Все модули php, которые требуется Laravel, установлены. Я запускаю приложение с встроенным веб-сервером php. Я запускаю это с помощью sudo. Точная команда, которую я запускаю, такова:

sudo php -S localhost:8888 -t public/ 

На все маршруты отвечают правильно.

Я пробовал оба способа установки Laravel, которые рекомендуют документы по установке, через исполняемый файл laravel и композитор-проект. Тем не менее, ни один cookie не установлен в любом случае. Я создал все файлы и каталоги проекта laravel mod 777. Ключ приложения установлен в .env, если это имеет значение.

Файл config / session.php использует драйвер файла для сеанса. После установки сеанса в каталоге storage / framework / sessions нет файлов сеанса.

Когда я пытаюсь установить сеанс сам с функцией сессии, как это указано в документах:

 session(['sesskey' => 'somevalue']); 

Снова в ответ не отправляется заголовок «Set-Cookie», и файл сеанса не создается. Нет сообщений об ошибках, о которых сообщалось, либо я должен добавить.

Когда я устанавливаю сеансовый ключ с помощью функции сеанса, такой как выше, я могу вернуть это значение и повторить его обратно в браузер так:

 echo session('sesskey'); 

Таким образом, похоже, он сохраняет его, по крайней мере, в памяти php.

Когда я пытаюсь установить cookie с помощью метода withCookie, я получаю правильный ответ с помощью набора заголовков Set-Cookie:

 return response()->view('welcome')->withCookie(cookie("test", "val" , 3600)); 

Я попытался спуститься в освещенную кроличью нору, чтобы увидеть, могу ли я найти проблему, но это немного над головой.

Любая помощь будет очень полезна, спасибо!

в laravel 5.2 вам нужно использовать «сетевое» промежуточное программное обеспечение для вашей проблемы, например

 Route::group(['middleware' => ['web']], function () { // }); 

используйте промежуточное ПО для запроса \ Illuminate \ Session \ Middleware \ StartSession :: class

 Route::group(['middleware' => [\Illuminate\Session\Middleware\StartSession::class]], function () { });