【问题标题】:Laravel 5.6 session is not persistant after update from 5.5从 5.5 更新后,Laravel 5.6 会话不再持久
【发布时间】:2018-08-25 18:01:37
【问题描述】:

我将我的应用程序的 Laravel 框架从 5.5 更新到了 5.6,从那以后我就无法使会话持久化。

问题是,在发出发布请求(例如 /login)时,我总是收到错误“页面已过期”,所以这是关于 CRFS-令牌的问题,因为我使用请求正确发送了它,我检查了我保存的数据库会话,我认识到每次尝试都会生成一个新会话。

我尝试将 config/session.php 设置为原来的, 删除浏览器缓存/cookies, 如果 5.6 发生了变化,我检查了我的内核和中间件, 我清除了视图、缓存和路由, 还有更多,但没有成功。

知道我没有看到什么吗?

【问题讨论】:

  • 尝试运行php artisan cache:clear和php artisan view:clear
  • 我已经试过了,谢谢。
  • 您使用的是哪个会话驱动程序?默认(文件)?
  • 我现在测试了文件和数据库,没有任何改变。

标签: php laravel session laravel-5


【解决方案1】:

虽然我也无法让文件或数据库工作,但我确实可以切换到 Cookie 进行会话。请注意您的 cookie 有多大。

编辑:所以我发现了为什么文件会话不适合我。我的 php 系统不支持文件锁定,这会阻止加载会话文件。在/vender/laravel/framework/sr/Illuminate/Filesystem/Filesystem.php 文件中,我必须将$lock 变量覆盖为始终为假:

/**
 * Get the contents of a file.
 *
 * @param  string  $path
 * @param  bool  $lock
 * @return string
 *
 * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
 */
public function get($path, $lock = false)
{
    $lock = false; //I ADDED THIS LINE
    if ($this->isFile($path)) {
        return $lock ? $this->sharedGet($path) : file_get_contents($path);
    }

    throw new FileNotFoundException("File does not exist at path {$path}");
}

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2014-09-08
    • 2019-01-05
    • 2016-11-15
    • 1970-01-01
    • 2016-04-04
    • 2018-04-16
    相关资源
    最近更新 更多