【发布时间】:2021-05-23 18:33:58
【问题描述】:
我有一个 laravel 8 应用程序在 docker 下的 http://localhost:9003 上运行。 我有点头疼,因为会话在请求之间没有持续存在,我不知道为什么
web.php
Route::get('/session', function () {
var_dump(Illuminate\Support\Facades\Session::all());
});
Route::get('/session-put', function () {
Illuminate\Support\Facades\Session::put('something', 'here');
Illuminate\Support\Facades\Session::save();
var_dump(Illuminate\Support\Facades\Session::all());
});
虽然它在 /session-put 下正确显示,但导航回 /session 仅显示令牌并在 /storage/framework/sessions 下创建一个新文件
在我的内核中添加了
protected $middleware = [
\Illuminate\Session\Middleware\StartSession::class,
...
];
在我的 .env 文件中
APP_NAME=Laravel
APP_ENV=development
APP_DEBUG=true
APP_URL=localhost
将我的应用程序部署到服务器似乎可行,因为在 /session 中我可以看到已放入 /session-put 的内容
谢谢
【问题讨论】:
-
如果您使用的是 Chrome,请按 F12 并检查获取该页面的网络请求的“Cookies”部分。确保您在
session-put之后收到的 cookie 与发送到session的 cookie 相同(如果您在列表中看不到过滤的 cookie,请检查以显示过滤的 cookie,它可能会告诉您正在发生的事情) -
每次刷新都会生成一个名为
laravel_session的不同cookie -
请展开您的
.env文件,您的session可能有问题。