我在 Laravel 5.1 应用程序中遇到了一个奇怪的问题。
有时会丢失会话数据。我编写了一些中间件,将该请求的会话内容写入日志文件来检测这个问题。虽然会话 ID(
正如我所说,这种情况是间歇性的。我可以多次刷新同一 URL,然后随机地在一次刷新中会话数据丢失,而
这是什么原因?我还注意到“丢失”的会话数据中没有
以下是日志的一部分。您可以看到
此外,不确定是否相关,但我启用了 DebugBar。
有时会丢失会话数据。我编写了一些中间件,将该请求的会话内容写入日志文件来检测这个问题。虽然会话 ID(
Session::getId()
)没有改变,但使用Session::all()
检索的会话数据中的_token
值确实发生了变化。正如我所说,这种情况是间歇性的。我可以多次刷新同一 URL,然后随机地在一次刷新中会话数据丢失,而
_token
值与之前的请求不同。这是什么原因?我还注意到“丢失”的会话数据中没有
flash
对象。以下是日志的一部分。您可以看到
session_data
键的内容在最后两行中随机更改了“形状”,但会话 ID 保持不变。此外,不确定是否相关,但我启用了 DebugBar。
更新: 经过调试,我发现在某些页面加载时,会话完全为空,也就是说,没有_token
(因此会生成一个新的)。什么都没有。
artisan serve
和file
会话驱动程序完成的,因此您可能需要发布有关您的环境的更多信息。 - Bogdan