我有一个Laravel 5.0站点,前端JS对后端Laravel代码进行了大量Ajax调用。我注意到,在每次ajax请求时,我都会在响应中每次获得新的“laravel_session”cookie值。我猜测这是一种安全机制来防止会话劫持。Laravel会话ID随每个请求而改变
但我认为这是我的网站造成的一个问题,因为我的ajax调用经常并行发生,而不是顺序发生。在开始下一个电话之前,我不会等待回复。
考虑这种情况
。 Ajax调用1 - 请求 - laravel_session cookie ='1234'
。 Ajax调用1 - 响应 - laravel_session cookie ='2345'
。 Ajax call 2 - request- laravel_session cookie ='2345'
。 Ajax调用3 - 请求laravel_session cookie ='2345'
。 Ajax调用2 - 响应 - laravel_session cookie ='3456'
。 Ajax调用3 - 响应 - 会话不再有效
有没有办法解决这个问题?
我也应该注意到,会话设置在config/session.php文件到期的 '终身'=> 120,
这不是一个安全机制,你是对的 - 它不应该发生。检查'config/session.php'中的会话设置,并检查cookie路径是否有效。默认情况下,基于文件的会话应该存储在'storage/framework/sessions /'中 - 如果该文件夹为空,则安装程序可能无法正确写入该文件夹。 – samlev
我在config/session.php中的设置看起来对我来说'files'=> storage_path()。'/ framework/sessions', ,我可以看到正在为storage/framework/sessions/ – MakkyNZ
创建的文件, files'=> storage_path('framework/sessions') – mroesler