javascript - 无法使用 JavaScript 在 Firefox 中删除 session cookie

标签 javascript session firefox cookies

对于我们的前端应用程序,我们使用 session cookie 进行身份验证。当用户需要进行身份验证时,他被重定向到登录页面,之后他被重定向到应用程序。 session cookie 已设置。 丑陋的部分是我们无法控制身份验证服务器,据我所知,对于来自客户端的每个请求,cookie 中的值都会更新。

问题是,当用户想要注销时,我们只是删除了 session cookie。这种方法适用于除 Firefox 以外的所有浏览器。

出于某种原因,Firefox 无法删除或更新 cookie。当我们尝试这样做时,Firefox 会立即创建一个具有有效值的新值。

现在我们尝试了几种方法:

  1. 正在尝试删除 cookie。
  2. 更新 cookie(过期时间、名称等)。

我们尝试了以下代码:

$.removeCookie('cookie_key');

$.cookie('cookie_key', null); 

document.cookie = '';

您知道问题出在哪里吗?

最佳答案

您是否尝试过来自 this answer 的解决方案? ? :

function delete_cookie( name, path, domain ) {
  if( get_cookie( name ) ) {
    document.cookie = name + "=" +
      ((path) ? ";path="+path:"")+
      ((domain)?";domain="+domain:"") +
      ";expires=Thu, 01 Jan 1970 00:00:01 GMT";
  }
}

或者:

function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

您是否也看过 developer.mozilla.org关于 cookie 的页面?

syntax:

docCookies.removeItem(name[, path[, domain]])

关于javascript - 无法使用 JavaScript 在 Firefox 中删除 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793768/

相关文章:

javascript - 在 Firefox 上使用 Google 自动填充时触发 JavaScript 事件

javascript - 服务工作线程不会在初始加载时拦截第一个获取调用

javascript - 包含定位元素时链接会中断

java - 创建包含用户特定数据的 WebSocket session 的最安全方法

php - Laravel - 如何在查询中使用 session 用户名

css - Firefox 在使用 flex 时忽略元素的宽度属性

javascript - 如何查询Firestore以通过字符串字段获取文档(搜索引擎友好的Slug)

javascript - 来自其他文件的 Vue 中方法的 mixin

php - SessionHandlerInterface::write 和 SessionUpdateTimestampHandlerInterface::updateTimestamp 有什么区别?

javascript - show() hide() 在 Firefox 中不起作用,但在所有其他浏览器中起作用