会话仅在 Chrome Bigcommerce PHP 应用程序中不起作用

我很担心,我刚刚发现我的 PHP 会话无法在 Chrome 中运行。实际上我正在开发 Bigcommerce 应用程序,它使用 Silex 框架(SessionServiceProvider)在我的应用程序中存储会话。它在 Firefox 中工作正常,但在 Chrome 中却不行。


当页面第一次加载时,它会显示会话值,但是当我发送任何 AJAX 请求或使用 POST 请求提交任何表单或从主页发送数据的任何页面请求时,会话变量都会被销毁,但是当我重新启动会话时,它会给出会话已经启动,没有会话变量。


此外,我读了这个https://blog.heroku.com/chrome-changes-samesite-cookie 我需要为我的解决方案设置相同的站点。但我找不到如何在我的应用程序会话中设置 Samesite 属性。


我使用下面的代码来设置我的应用程序会话


$app['session']->set('sessionname','sessionvalue');

我尝试使用同一个网站,


$app['session']->set('sessionname','sessionvalue',['samesite' => 'None', 'secure' => true]);

但不工作。


慕无忌1623718
浏览 90回答 1
1回答

PIPIONE

我终于找到了解决方案,想写在这里,只是因为它可能对某人有帮助。我在服务器上的 .htaccess 文件中添加了一个条件,<If&nbsp;"%{HTTP_USER_AGENT}&nbsp;!~&nbsp;/(iPhone;&nbsp;CPU&nbsp;iPhone&nbsp;OS&nbsp;1[0-2]|iPad;&nbsp;CPU&nbsp;OS&nbsp;1[0-2]|iPod&nbsp;touch;&nbsp;CPU&nbsp;iPhone&nbsp;OS&nbsp;1[0-2]|Macintosh;&nbsp;Intel&nbsp;Mac&nbsp;OS&nbsp;X.*Version\x2F1[0-2].*Safari|Macintosh;.*Mac&nbsp;OS&nbsp;X&nbsp;10_14.*&nbsp;AppleWebKit.*Version\x2F1[0-3].*Safari)/i">Header&nbsp;always&nbsp;edit&nbsp;Set-Cookie&nbsp;(.*)&nbsp;"$1;&nbsp;SameSite=None;&nbsp;Secure"</If>
打开App,查看更多内容
随时随地看视频慕课网APP