php httponly cookie在浏览器关闭时被删除


php httponly cookies being deleted on browser close

我正在我的网站上工作"记住我";功能,并且我使用session_set_cookie_params来保持会话有效,即使用户决定关闭他或她的浏览器。我遇到的问题是,即使我将cookie设置为持久性,浏览器也会删除它们,只有当我将cookie上的HttpOnly标志设置为true时才会发生这种情况。

以下是我现有的一些伪代码:

设置php-ini-的cookie生存期

为php-ini-设置垃圾收集器的最大生存时间

确定用户是否想要持久会话

设置会话cookie的时间,并确保它使用HttpOnly

启动会话

以下是我目前对正在使用的功能的了解,如果我有什么错的话,请告诉我:

  • 使用session_set_cookie_params时,如果希望在浏览器关闭时删除会话,请将时间设置为0
  • 将时间设置为零以上,会话cookie将在该时间段内保持活动状态
  • 如果您不希望通过javascript访问cookie,请将HttpOnly设置为true

在这种情况下,我绝对不希望通过javascript访问cookie。我做错什么了吗?

如果我应该补充更多信息,也请告诉我,这是我第一次提问。非常感谢。

好吧,所以我最终解决了这个问题,结果发现它与HttpOnly标志无关。最后,它不得不把饼干的持久性设置在错误的地方。

所以问题在于,当我在将cookie设置为持久性之前使用setcookie时。为了解决这个问题,我只需在调用setcookie函数之前将cookie设置为持久性。

我很抱歉认为错误是HttpOnly标志造成的,这是我不应该做出的重大假设。