我很担心,我刚刚发现我的 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]);但不工作。
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
我终于找到了解决方案,想写在这里,只是因为它可能对某人有帮助。
我在服务器上的 .htaccess 文件中添加了一个条件,
<If "%{HTTP_USER_AGENT} !~ /(iPhone; CPU iPhone OS 1[0-2]|iPad; CPU OS 1[0-2]|iPod touch; CPU iPhone OS 1[0-2]|Macintosh; Intel Mac OS X.*Version\x2F1[0-2].*Safari|Macintosh;.*Mac OS X 10_14.* AppleWebKit.*Version\x2F1[0-3].*Safari)/i">Header always edit Set-Cookie (.*) "$1; SameSite=None; Secure"</If>
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消