【问题标题】:Session is not working in Chrome only Bigcommerce PHP app会话在仅限 Chrome 的 Bigcommerce PHP 应用程序中不起作用
【发布时间】:2020-08-29 10:03:19
【问题描述】:

我很担心,我刚刚发现我的 PHP 会话无法在 Chrome 中运行。实际上,我正在开发 Bigcommerce 应用程序,它使用 Silex 框架(SesionServiceProvider)在我的应用程序中存储会话。它在 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]);

但不工作。

【问题讨论】:

    标签: php google-chrome session bigcommerce samesite


    【解决方案1】:

    我终于得到了解决方案,想写在这里,只是因为它可能对某人有所帮助。

    我在服务器上的 .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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 2017-06-22
      相关资源
      最近更新 更多