使用 Expires / Max-Age of Session 删除 cookie

Posted

技术标签:

【中文标题】使用 Expires / Max-Age of Session 删除 cookie【英文标题】:Deleting a cookie with Expires / Max-Age of Session 【发布时间】:2017-02-09 06:18:21 【问题描述】:

当我查看我的 chrome 开发工具(Cookie 部分)时,您有 5 个相关列: 名称、值、域、路径和过期/最大年龄 我有一个无法删除的 cookie 和 Expires / Max-Age of Session。奇怪的是,当我使用 x-debug 进行检查时,它不会显示在 $_SESSION 下,而是显示在 $_COOKIE 下。

我首先尝试使用 JS 进行删除,这在我的本地环境中有效,但是当我将其推送到临时服务器时,cookie 并没有被删除。

接下来我厌倦了用 php 删除它,因为我的理解是会话 cookie 不能用 js 删除,但是当尝试用 setcookie 或类似的东西删除 cookie 时

    setcookie (session_id(), "", time() - 3600);
    session_destroy();
    session_write_close();

我还是没有运气,有什么建议吗?

【问题讨论】:

Problems deleting cookies, won't unset的可能重复 【参考方案1】:

将时间设置为格林威治标准时间 1970 年 1 月 1 日星期四 00:00:01。我相信它会解决问题

【讨论】:

【参考方案2】:

我认为session_destroy() 之后的session_write_close() 可能是个问题。您是否尝试仅使用session_destroy()

您可以使用unset($_COOKIE[session_name()]);删除会话的cookie

【讨论】:

仍然没有运气,我觉得很奇怪我可以在本地使用 js 删除,但不能在我的登台服务器上删除。认为可能存在一些奇怪的服务器设置?

以上是关于使用 Expires / Max-Age of Session 删除 cookie的主要内容,如果未能解决你的问题,请参考以下文章

cookie属性max-age与expires同时存在时谁会生效

利用浏览器缓存 - expires 或 max-age, last-modified 或 etag

浏览器缓存之Expires Etag Last-Modified max-age详解

Nginx(expires 缓存减轻服务端压力)

爱创课堂每日一题第二十三天- Expires和Cache-Control?

明年找到好工作:面试题打卡第三天