当前位置:首页 > 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实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现乘法

js实现乘法

实现乘法运算的方法 在JavaScript中实现乘法运算可以通过多种方式完成,以下列举几种常见方法: 基础运算符 直接使用乘法运算符*是最简单的方式: let result = 3 * 5; //…