如何解决会话无法在仅限Chrome的Bigcommerce PHP应用中运行
我很担心,我只是发现我的PHP会话在Chrome中无法正常工作。实际上,我正在使用Silex框架(SesionServiceProvider)将会话存储在我的应用程序中的Bigcommerce应用程序上。在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]);
但不起作用。
解决方法
我终于有了解决方案,想在这里写,只是因为它可能对某人有帮助。
我在服务器上的.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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。