Laravel会话ID随每个请求而变化

时间:2015-10-14 16:26:35

标签: php ajax laravel cookies laravel-5

我有一个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,

enter image description here

config/session.php

3 个答案:

答案 0 :(得分:8)

你是对的它是一种安全机制。要禁用它进行测试,请在Kernel.php中注释掉这一行:

\App\Http\Middleware\EncryptCookies::class

然后,您将在Cookie查看器中看到会话ID,但不会更改。

您可以使用Google for HTTP加密Cookie来了解这种做法。如果我们现在在每个网站都使用HTTPS,那么现在就有必要进行辩论。

答案 1 :(得分:1)

您的域名无效。您需要查看config.session.domainconfig.session.path

答案 2 :(得分:0)

我也遇到了同样的问题,后来发现我正在使用

of()

在$ middleware和$ middlewaregroups中,因此在不同路线之间移动时创建了一个新的会话ID。