【发布时间】:2022-01-20 17:27:39
【问题描述】:
我有以下代码,我通常在其中设置 cookie。在从 chrome 更新新的 SameSite 之前,它工作正常。它停止工作。如您所见,我添加了SameSite,但是在Android 上使用Chrome 的一些用户在登录时遇到问题。我做了一些日志记录来尝试找出用户无法登录的原因,看起来像一些使用旧版本android和chrome的用户无法登录,因为下面的代码显然对他们不起作用。
$expire = time() + 4 * 7 * 24 * 60 * 60; // Making the cookie live for 4 weeks
$en_string = "some string";
setcookie("username", $en_string, $expire, "/; SameSite=None; Secure");
setcookie("login_key", "1", $expire, "/; SameSite=None; Secure");
我在apache 和CentOS 上运行Php5 5.6.30。任何帮助我应该改变什么。 apache_response_headers() 的回复是
Array
(
[X-Powered-By] => PHP/5.6.32
[Accept] => application/json
[Set-Cookie] => username=some string; expires=Fri, 13-Nov-2020 05:20:25 GMT; Max-Age=2419200; path=/;samesite=strict
[Expires] => Thu, 19 Nov 1981 08:52:00 GMT
[Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
[Pragma] => no-cache
)
【问题讨论】:
-
这不是
setcookie应该被使用的方式。这实际输出的 HTTP 标头是什么? -
添加了对问题的回复。