当前位置:首页 > JavaScript

js 实现保存cookie

2026-04-07 06:58:52JavaScript

设置 Cookie

使用 document.cookie 属性可以直接设置 Cookie。格式为键值对,可以附加过期时间、路径、域名等属性。

document.cookie = "username=JohnDoe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";
  • username=JohnDoe:键值对。
  • expires:设置过期时间(UTC 格式)。
  • path=/:指定 Cookie 生效的路径。

设置 Cookie 并添加 Secure 和 HttpOnly 标志

为了安全性,可以添加 Secure(仅 HTTPS 传输)和 HttpOnly(禁止 JavaScript 访问)标志。

js 实现保存cookie

document.cookie = "sessionID=abc123; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/; Secure; HttpOnly";

读取 Cookie

通过 document.cookie 可以获取当前域下的所有 Cookie,返回的是一个字符串,需要自行解析。

const cookies = document.cookie; // "username=JohnDoe; sessionID=abc123"

解析 Cookie

可以将 Cookie 字符串解析为对象,方便读取。

js 实现保存cookie

function getCookies() {
  const cookieStr = document.cookie;
  const cookieArr = cookieStr.split('; ');
  const cookies = {};

  cookieArr.forEach(cookie => {
    const [key, value] = cookie.split('=');
    cookies[key] = value;
  });

  return cookies;
}

const cookies = getCookies();
console.log(cookies.username); // "JohnDoe"

删除 Cookie

通过设置 expires 为过去的时间来删除 Cookie。

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

封装 Cookie 操作

可以封装一个工具函数来方便操作 Cookie。

const CookieUtil = {
  set(name, value, days = 7, path = '/') {
    const expires = new Date();
    expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000);
    document.cookie = `${name}=${value}; expires=${expires.toUTCString()}; path=${path}`;
  },

  get(name) {
    const cookies = document.cookie.split('; ');
    for (const cookie of cookies) {
      const [key, val] = cookie.split('=');
      if (key === name) return val;
    }
    return null;
  },

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

// 使用示例
CookieUtil.set('token', 'xyz123', 30); // 设置 30 天后过期
const token = CookieUtil.get('token'); // 获取 token
CookieUtil.remove('token'); // 删除 token

注意事项

  • Cookie 有大小限制(通常 4KB)。
  • 避免存储敏感信息,推荐使用 HttpOnlySecure 标志增强安全性。
  • 现代应用推荐使用 localStoragesessionStorage 替代 Cookie 存储非服务端依赖的数据。

标签: jscookie
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现祖玛

js实现祖玛

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

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…