当前位置:首页 > JavaScript

js实现cookies

2026-03-14 12:05:54JavaScript

如何在JavaScript中操作Cookies

设置Cookie

使用document.cookie属性设置Cookie,可以指定名称、值、过期时间、路径和域。例如设置一个名为username的Cookie,有效期为7天:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";

动态设置过期时间可以使用Date对象:

const date = new Date();
date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000));
document.cookie = `username=John Doe; expires=${date.toUTCString()}; path=/`;

获取Cookie

通过document.cookie获取所有Cookie,返回一个字符串,包含所有Cookie的名称和值。需要解析该字符串来获取特定Cookie:

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

console.log(getCookie('username'));

删除Cookie

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

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

设置Cookie的Secure和HttpOnly属性

为了增强安全性,可以设置SecureHttpOnly属性:

document.cookie = "username=John Doe; Secure; HttpOnly; path=/";
  • Secure:仅通过HTTPS传输Cookie。
  • HttpOnly:防止JavaScript访问Cookie,减少XSS攻击风险。

使用第三方库简化操作

如果需要更复杂的Cookie操作,可以使用第三方库如js-cookie

// 使用js-cookie库
Cookies.set('username', 'John Doe', { expires: 7, path: '/' });
const username = Cookies.get('username');
Cookies.remove('username');

安装js-cookie库:

npm install js-cookie

或在HTML中直接引入:

js实现cookies

<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>

注意事项

  • Cookie有大小限制(通常4KB),不适合存储大量数据。
  • 过多的Cookie会影响性能,因为每次请求都会携带Cookie。
  • 敏感数据不应存储在Cookie中,应考虑使用localStoragesessionStorage

通过以上方法,可以在JavaScript中有效地操作Cookie,实现用户数据的持久化存储。

标签: jscookies
分享给朋友:

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…