【发布时间】:2016-01-12 20:40:23
【问题描述】:
我有一个 Laravel 5.0 站点,其中前端 JS 对后端 Laravel 代码进行大量 ajax 调用。我注意到,在每个 ajax 请求中,我每次都会在响应中获得一个新的“laravel_session”cookie 值。我猜这是一些防止会话劫持的安全机制。
但是我认为这会导致我的网站出现问题,因为我的 ajax 调用经常并行发生,而不是顺序发生。在触发下一个呼叫之前,我不会等待响应。
考虑这种情况
。 Ajax 调用 1 - 请求 - laravel_session cookie = '1234'
。 Ajax 调用 1 - 响应 - laravel_session cookie = '2345'
。 Ajax 调用 2 - request- laravel_session cookie = '2345'
。 Ajax 调用 3 - request- laravel_session cookie = '2345'
。 Ajax 调用 2 - 响应 - laravel_session cookie = '3456'
。 Ajax 调用 3 - 响应 - 会话不再有效
有没有办法解决这个问题?
我还应该注意会话在 config/session.php 中设置为过期 '终生' => 120,
【问题讨论】:
-
这不是一种安全机制,你是对的 - 它不应该发生。检查
config/session.php中的会话设置,并检查cookie 路径是否有效。默认情况下,基于文件的会话应存储在storage/framework/sessions/- 如果该文件夹为空,那么您的安装可能无法正确写入该文件夹。 -
我在 config/session.php 中的设置对我来说看起来不错 'files' => storage_path().'/framework/sessions',我可以看到文件正在 storage/framework/sessions/ 中创建
-
对我来说是 'files' => storage_path('framework/sessions')
标签: php ajax laravel cookies laravel-5