无法设置 SameSite=None PHP 7.4 无错误无警告
Unable to set SameSite=None PHP 7.4 no error no warning
我在 Internet 上搜索过,试图找到将 SameSite 设置为 none 的正确方法。
我在 PHP 7.4.2 (CLI) 我还需要在 PHP 7.3 及更低版本上工作。
这些是我目前试过的
//1
setcookie($name, $value, ['secure' => true, 'samesite' => 'None']);
//2
setcookie($name, $value, [
'expires' => $expire,
'path' => '',
'domain' => '',
'secure' => true,
'httponly' => false,
'samesite' => 'None',
]);
顺便说一句,这个有效
setcookie($name, $value, ['samesite' => 'Lax']);
但这不是
setcookie($name."test4", $value, ['secure' => true, 'samesite' => 'Lax']);
正如类似建议所说,这不是我的浏览器的问题。我没有收到任何错误或浏览器警告。这段代码什么也没做。
正如我提到的,从 docker 使用 PHP 7.4 和 Apache。
原来我的语法没问题。我错过了一点,当我将 'secure' 设置为 'true'(作为 samesite none 的 bi-product)。
我刚刚了解到,当您将 cookie 的 secure 设置为 true 时,这意味着它只会在存在安全连接时设置该 cookie。即如果网站有 HTTPS。
在本地主机 docker 环境中工作我没有 HTTPS,所以这就是为什么 cookie 根本没有设置,没有警告,也没有抛出错误。
解决方案是获取 HTTPS,我有一个使用 HTTPS 的测试服务器,我在其中上传了我的应用程序并且一切正常。
我在 Internet 上搜索过,试图找到将 SameSite 设置为 none 的正确方法。
我在 PHP 7.4.2 (CLI) 我还需要在 PHP 7.3 及更低版本上工作。
这些是我目前试过的
//1
setcookie($name, $value, ['secure' => true, 'samesite' => 'None']);
//2
setcookie($name, $value, [
'expires' => $expire,
'path' => '',
'domain' => '',
'secure' => true,
'httponly' => false,
'samesite' => 'None',
]);
顺便说一句,这个有效
setcookie($name, $value, ['samesite' => 'Lax']);
但这不是
setcookie($name."test4", $value, ['secure' => true, 'samesite' => 'Lax']);
正如类似建议所说,这不是我的浏览器的问题。我没有收到任何错误或浏览器警告。这段代码什么也没做。
正如我提到的,从 docker 使用 PHP 7.4 和 Apache。
原来我的语法没问题。我错过了一点,当我将 'secure' 设置为 'true'(作为 samesite none 的 bi-product)。
我刚刚了解到,当您将 cookie 的 secure 设置为 true 时,这意味着它只会在存在安全连接时设置该 cookie。即如果网站有 HTTPS。
在本地主机 docker 环境中工作我没有 HTTPS,所以这就是为什么 cookie 根本没有设置,没有警告,也没有抛出错误。
解决方案是获取 HTTPS,我有一个使用 HTTPS 的测试服务器,我在其中上传了我的应用程序并且一切正常。