我在Chrome上遇到Cookie问题。 我使用php中的setcookie()函数作为自动重新验证已经通过验证过程的用户(使用LinkedIn API)的意思。
问题是,我设置的cookie在Firefox和IE 11上运行良好,但似乎在Chrome上几秒后就被删除了。我已经用一堆用户测试了它,同样的问题(我在等待其他浏览器的反馈)。
以下是设置Cookie的代码:
setcookie('CookieID', $var, (time()+365*24*3600), NULL, NULL, false, true);
setcookie('LinkedInAuth', $var, (time()+365*24*3600), NULL, NULL, false, true);
这是一个已知问题吗?我该如何解决这个问题?
编辑5:
我改变了主题标题,因为我完全回顾了我的方法。 (我也删除了以前的编辑,因为它们无关紧要)
我现在使用openssl_random_pseudo_bytes()
函数生成一个唯一的ID,而不是使用LinkedIn ID作为我的cookie的值。
这是新代码:
$random = openssl_random_pseudo_bytes(32);
$UserKey = bin2hex($random);
$expiration= time() + 365*24*3600;
setcookie('CookieID', $UserKey, $expiration, NULL, NULL, false, false);
现在,Chrome正在按照要求创建一个具有随机值的Cookie,并且Cookie过期时间是正确的。不过,这不是正确的价值!我在控制台中回显$UserKey
,它与cookie的价值不同。但在FF和IE上,它的工作就像一个魅力!
Response标头为我的cookie提供了错误的值,但请求标头有正确的值。
有人有经验吗?问题来自我的代码或我使用的功能吗?
答案 0 :(得分:1)