📜  Koa.js-Cookies(1)

📅  最后修改于: 2023-12-03 15:32:29.098000             🧑  作者: Mango

Koa.js-Cookies

Koa.js-Cookies 是 Koa.js 中处理浏览器 cookie 的中间件插件。该插件使用了 cookies 模块来轻松管理浏览器 cookie。

安装

使用 npm 安装:

npm install koa-cookies
使用

在 Koa.js 应用程序中使用:

const Koa = require("koa");
const app = new Koa();
const cookies = require("koa-cookies");

app.use(cookies());

app.use(async (ctx) => {
  // 设置 cookie
  ctx.cookies.set("name", "koa-js-cookies");
  
  // 获取 cookie
  const name = ctx.cookies.get("name");
  
  // 删除 cookie
  ctx.cookies.set("name", null);
});
选项

可用的选项:

  • keys: 用于签名 cookie 的密钥,可以是字符串或数组。当设置为数组时,插件将选择其中的第一个密钥进行签名。必须为选项之一,但默认为 null
  • secure: 一个布尔值,指示 cookie 应该通过 HTTPS 传输或不传输。默认为 false
  • httpOnly: 一个布尔值,指示 cookie 是否应该设置为 httponly。默认为 true
  • maxAge: cookie 的最大年龄(以毫秒为单位)。它可以作为整数或字符串传递。默认为 null
  • domain: cookie 所在的域名,默认为应用程序的当前域名。
  • path: cookie 的路径,默认为 '/'。
实例
const Koa = require("koa");
const app = new Koa();
const cookies = require("koa-cookies");

app.use(
  cookies({
    keys: ["secret-key-one"],
    secure: true,
    httpOnly: true,
    domain: "example.com",
    maxAge: 600000,
    path: "/dashboard",
  })
);

app.use(async (ctx, next) => {
  // 设置 cookie
  ctx.cookies.set("name", "koa-js-cookies");
  
  // 获取 cookie
  const name = ctx.cookies.get("name");
  
  // 删除 cookie
  ctx.cookies.set("name", null);
  
  await next();
});

以上代码将在启动应用程序时创建一个名为 name 的 cookie,并将其路径设置为 /dashboard,域名设置为 example.com,过期时间设置为 600 秒。在调用该中间件时,每个路由都将具有对访问 cookie 的权限,并能够设置、获取和删除 cookie。

结论

此外,koa-cookies 还支持通过 signed 选项对 cookie 进行签名,以便可以轻松验证其完整性。在这个中间件的帮助下,处理浏览器 cookie 将变得更加容易。