当前位置:首页 > JavaScript

js 实现保存cookie

2026-02-02 13:26:06JavaScript

保存 Cookie 的方法

在 JavaScript 中,可以通过 document.cookie 属性来保存 Cookie。以下是具体实现方式:

设置 Cookie

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
  • username=John Doe:键值对,表示 Cookie 的名称和值。
  • expires:可选,设置 Cookie 的过期时间(UTC 格式)。
  • path:可选,指定 Cookie 的有效路径,默认为当前路径。

设置带有 Max-Age 的 Cookie

js 实现保存cookie

document.cookie = "theme=dark; max-age=3600; path=/";
  • max-age:以秒为单位设置 Cookie 的有效期(例如 3600 秒 = 1 小时)。

设置 Secure 和 HttpOnly Cookie

document.cookie = "sessionId=abc123; secure; httponly";
  • secure:仅通过 HTTPS 传输 Cookie。
  • httponly:禁止 JavaScript 访问 Cookie(增强安全性)。

读取 Cookie

通过 document.cookie 可以读取当前域下的所有 Cookie:

js 实现保存cookie

const allCookies = document.cookie;
console.log(allCookies); // 输出格式如 "username=John Doe; theme=dark"

删除 Cookie

通过将过期时间设置为过去的时间来删除 Cookie:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

封装 Cookie 操作函数

以下是一个封装了 Cookie 操作的实用函数:

function setCookie(name, value, days = 30, path = "/") {
  const expires = new Date();
  expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000);
  document.cookie = `${name}=${encodeURIComponent(value)}; expires=${expires.toUTCString()}; path=${path}`;
}

function getCookie(name) {
  const cookies = document.cookie.split(";");
  for (const cookie of cookies) {
    const [cookieName, cookieValue] = cookie.trim().split("=");
    if (cookieName === name) return decodeURIComponent(cookieValue);
  }
  return null;
}

function deleteCookie(name, path = "/") {
  document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`;
}

注意事项

  • Cookie 有大小限制(通常为 4KB),不适合存储大量数据。
  • 敏感信息不应直接存储在 Cookie 中,建议使用加密或服务端 Session。
  • 跨域 Cookie 需设置 domain 属性,例如 .example.com

标签: jscookie
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…