【问题标题】:Laravel 8 Session not persistingLaravel 8 会话不持久
【发布时间】: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 可能有问题。

标签: php laravel


【解决方案1】:

不确定是否有助于调试问题,但是一旦我打开没有安全性的 chrome,它就可以工作。

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2014-09-08
    • 2016-11-15
    • 2016-04-04
    • 2019-01-29
    • 2015-05-10
    • 2021-05-03
    • 2016-10-09
    相关资源
    最近更新 更多