我有一个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,
答案 0 :(得分:8)
你是对的它是一种安全机制。要禁用它进行测试,请在Kernel.php中注释掉这一行:
\App\Http\Middleware\EncryptCookies::class
然后,您将在Cookie查看器中看到会话ID,但不会更改。
您可以使用Google for HTTP加密Cookie来了解这种做法。如果我们现在在每个网站都使用HTTPS,那么现在就有必要进行辩论。
答案 1 :(得分:1)
您的域名无效。您需要查看config.session.domain
和config.session.path
。
答案 2 :(得分:0)
我也遇到了同样的问题,后来发现我正在使用
of()
在$ middleware和$ middlewaregroups中,因此在不同路线之间移动时创建了一个新的会话ID。