在你们阅读我的问题之前,请不要否决投票或结束这个问题,我已经尝试了几乎所有我能在网上找到的东西,所以也许这是一个我没有看到的简单错误。
我有一个完整的工作程序
setcookie()
<?php
setcookie(
'_siteauth',
Crypt::encrypt(site()->password),
time() + 86400,
'/',
);
?>
但是一旦我尝试使用
samesite
cookie从未设置的选项。。。这是个问题。
起初,在所有在线阅读之后,我认为这可能是PHP版本冲突,但在PHP 7.3.0版之前/之后的测试中都失败了。
读后
https://www.php.net/manual/en/function.setcookie.php
expires
path
,
domain
,
secure
httponly
和
闪锌矿
这是我的车
$_SERVER['HTTP_HOST']
后果
demo.local.mydomain.com
下面是我所有的本地测试代码尝试,使用
$\u服务器['HTTP\u主机']
对于域。。。
<?php
setcookie(
'_siteauth',
Crypt::encrypt(site()->password),
[
'expires' => time() + 86400,
'path' => '/',
'domain' => $_SERVER['HTTP_HOST'],
'samesite' => 'None',
'secure' => false,
'httponly' => false
]
);
?>
<?php
setcookie(
'_siteauth',
Crypt::encrypt(site()->password),
time() + 86400,
'/; SameSite=none'
);
?>
<?php
setcookie(
'_siteauth',
Crypt::encrypt(site()->password),
[
'expires' => time() + 86400,
'path' => '/',
'domain' => $_SERVER['HTTP_HOST'],
'secure' => false,
'httponly' => false,
'samesite' => 'None'
]
);
?>
这些代码示例都没有保存
_siteauth
执行时使用cookie。
我已经尝试过php版本的每一种变体
setcookie()
包括
闪锌矿
我改变我以前工作的原因
这个脚本是因为chrome在2020年初改变了iframe cookie策略,默认为samesite
Lax
None
当设置我的cookie时。
https://web.dev/samesite-cookies-explained/
https://web.dev/samesite-cookie-recipes/
如果有人能看到我哪里出了问题,帮助将是惊人的。谢谢