Я новичок в Laravel, я узнал о моделях, видах, клинке, контроллерах и маршрутах и о том, как они работают вместе. Пока все работает плавно.
Однако у меня проблемы с сеансами.
Когда я использую AuthController, который поставляется с Laravel и удаляет auth / register с помощью запроса POST, данные для пользователя, который я регистрирую, вставляются в таблицу users (используя mysql), и я возвращаю ответ с помощью «Location», переадресация заголовка в / как это происходит из коробки. Он перенаправляется так, как должен. Но в том же ответе нет набора / Set заголовка Set-Cookie. Серийная часть Laravel не работает должным образом для меня. То же самое для POST для авторизации / входа в систему, он правильно аутентифицируется и перенаправляется на страницу профиля, но в ответ не отправляется cookie сеанса.
Я использую:
Все модули 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 () { });