larave session问题,为什么每次session_id都要变

Gundy
  • 752

laravel的每次请求,响应都要重新设置session_id。这是为什么

clipboard.png

session的这个配置是什么意思,查是说回收Session存放位置。但是这个配置的值看不懂了
clipboard.png

评论
阅读 3.5k
4 个回答
✓ 已被采纳

看了这块的源码找到了答案:

一切都是在EncryptCookies中进行的

\App\Http\Middleware\EncryptCookies::class

larave_session

先经过base64_decode,在json_decode
在进行一些列验证

clipboard.png

然后通过openssl_decrypt解密出真正存储在redis或其他drive里面的session_id
clipboard.png

之后再response里面对cookie在进行加密。 这就是为什么每次请求我们看到的laravel_session的值都不一样了
clipboard.png

clipboard.png

能不能多发几次请求的截图;我这里很正常,同一次会话中,每次请求 sessionId 都是一样的;

至于配置项中的 lottery 表示 数据库中 session 数据清理无效的概率;在StartSession中间件中,在这么一句话

random_int(1, $config['lottery'][1]) <= $config['lottery'][0];

表示有 1% 的概率,会清除数据库中过期的无效的 session数据;和本次会话session数据是无关的;

哪里有id了?这是整个session啊。

{"iv":"\/PLhqJ0pJW7B3rcJADr6og==","value":"7zmpKgHi6Ptn0EX6rsNE9GQAzkJ2UCIS\/nYaTulX3XkeRR+DKhYYyjv3XnuVWCZ4ZQf77rtdbb4rW2KzzQVyyI69jKawpmYbId48qPVPi\/1cmwKgGG4UWF1pca4DAWXOwnyguOHtwutbpbOYc15sVf3uQUWELf2BUEGWSDtyuVir13vubE4LJRZRhR5aGhzS9MNNdwr4Is0jP8SJ6ucaFXWREiL3n6n0W+wWn6z4rGew8Sp01Im7v8yIErXGs3DvyFuUHfxPRR\/l5AzRmQe\/eKuLoh1MbN\/hOWDB17zjiTYDRP3l3Zx2Gqd2YrS11QtEULOcgklbrgPIuK6YQwXi4797d95Um\/CETKc35VGTkpY2QzU1rPsEWfDHkJAxyvmhBTZochfJn4b7qxQ31Ot96qNxs+ILHt7yNX2DvEVYrpbOux3ynrHhkUTP\/n7mX3bGFvQRlV4hXM+nSi2z9Z1H0kWTXCRA+lYvv2M7NJf4jYI4W6ZoKV1yxg7FyUPGnTzaWxrbAG92oKKwWazgKu2FbCBafeg4\/0mh6Xn5q9UOEeCPzvXWoTSLLyJB55J2fL+TNMaLyUH9dE2IvCpGqpBAbElE2FN3sEoeErvt6VoSsDa669cyuyoVNvg4qpZylyuTubS4o8iHpWNym+iERDv9j2UDrtRAEm6vQl0Nl19f8YYnjRD0qCN1qLS149F6GV\/PgBPTOtjK0tWz\/6DGcSTmxLix7rY3N5C+RMUBT5JO6WusU\/QYpXFzg10t5yh8jmZK","mac":"9cb99e2c017bc833c78376a3e09d595b425d8f954640ab16532837b3b8b69ee4"}

解码后是酱紫

你不能只说问题,你得吧相应的配置文件得贴出来,要不我们只能猜,这样效率很低……

宣传栏