我将我的应用程序的Laravel框架从5.5更新到5.6,从那以后我就无法让会话持久化。
问题是,在发出帖子请求时(例如/ login),我总是得到错误" Page expired"所以它是关于CRFS-Token的东西,因为我正确地发送了它请求我检查了我保存会话的数据库,我发现每次尝试都会生成一个新会话。
我尝试将config / session.php设置为原始, 删除浏览器缓存/ cookie, 我检查了我的内核和中间件,如果5.6的内容发生了变化, 我清除了视图,缓存和路由, 还有更多,但没有成功。
任何想法,我不明白?
答案 0 :(得分:0)
虽然我也无法使文件或数据库正常工作,但确实可以切换到Cookies进行会话。请小心您允许Cookie变大的大小。
编辑:因此,我了解了为什么文件会话对我不起作用。我的php系统不支持文件锁定,这阻止了会话文件的加载。在/vender/laravel/framework/sr/Illuminate/Filesystem/Filesystem.php
文件中,我必须覆盖$lock
变量以始终为false:
/**
* 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}");
}