【问题标题】:Laravel lost session after a few requests/page refresh几次请求/页面刷新后 Laravel 丢失会话
【发布时间】:2017-01-13 02:31:43
【问题描述】:

不幸的是,我的 laravel-session 有问题:

当我将一些产品添加到会话购物车并重新加载页面几次时,会话数据将完全丢失。

会话配置:

'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => null,
'secure' => false,
'http_only' => true,

(全部默认)

Laravel 版本: 5.2.43

问题出现在本地 (xampp) 和服务器上 (forge)。所以我怀疑不是服务器问题。

我用中间件尝试了不同的解决方案,但不幸的是没有任何成功。看起来,在一些请求/页面随机重新加载后,会话被删除了。 (有时在 5 之后,有时在 20 之后)

我发现当我按请求加载图像时(不是直接通过文件),会话会更频繁地丢失。

对于 laravel 初学者来说,Session-percistence 显然是个大问题。 很多论坛和论坛都充满了解决方案,但我发现没有一个能解决我的问题。

有什么经验吗?

谢谢!

【问题讨论】:

  • 您的 .env 文件中指定了什么驱动程序?也许你可以换个司机。
  • @Jan in .env 还有:SESSION_DRIVER=file。切换到不同的驱动程序,这只是一种解决方法,而不是我认为的解决方案。
  • 您可以尝试将其更改为“cookie”或“数据库”吗?
  • cookie 驱动程序导致同样的问题。接下来我测试数据库驱动程序...
  • 首先数据库驱动程序工作正常,但是当我重新加载页面大约 100-150 次时,会话将丢失:(

标签: laravel session


【解决方案1】:

似乎“Session Sweeping Lottery”不是我的问题的触发因素。 这里有人有想法吗?我现在很无助。

【讨论】:

  • 你有没有想出解决方案?我在随机请求无法恢复会话时遇到同样的问题。刚刚尝试将彩票值从 100 修改为 500 并尝试查看它是否有所作为。以前这个问题是由“php artisan config:cache”解决的,但在升级到 Laravel 8 之后,问题开始更频繁地发生。我也使用 XAMPP 作为我的开发服务器,但我在使用 Apache 的 *nix 上没有这个问题。
猜你喜欢
  • 2014-07-20
  • 2019-05-16
  • 2014-08-16
  • 1970-01-01
  • 2023-03-25
  • 2014-12-31
  • 1970-01-01
  • 2018-08-22
  • 2011-07-12
相关资源
最近更新 更多