跳到主要内容

koa-cookies

一、认识


koa-cookies 是一个 Koa 中间件,用于处理 HTTP 请求和响应中的 cookies。它提供了一种简便的方法来读取、设置和删除 cookies,从而简化了 cookie 的管理。

二、API


2.1 ctx.cookies.get(name)

ctx.cookies.get(name): 获取指定名称的 cookie

2.2 ctx.cookies.set(name, value, options)

ctx.cookies.set(name, value, options): 设置一个新的 cookie,可以指定多个选项(如过期时间、路径、域名等)。

在设置 cookies 时,可以使用以下选项:

  • maxAge: 指定 cookie 的有效时间(以毫秒为单位)。

  • expires: 指定 cookie 的过期时间(Date 对象)。

  • path: 指定 cookie 的路径,只有在该路径下的请求才能访问该 cookie

  • domain: 指定 cookie 的域,默认为当前域。

  • httpOnly: 如果为 true,则客户端 JavaScript 无法访问该 cookie,提高安全性。

2.3 ctx.cookies.set(name, null)

ctx.cookies.set(name, null): 删除指定名称的 cookie

三、语法


const Koa = require('koa');
const KoaCookies = require('koa-cookies');

const app = new Koa();

// 使用 koa-cookies 中间件
app.use(KoaCookies());

// 处理请求
app.use(async (ctx) => {
// 读取 cookie
const visitCount = ctx.cookies.get('visitCount') || 0;

// 设置 cookie
ctx.cookies.set('visitCount', parseInt(visitCount) + 1, {
httpOnly: true, // 只在 HTTP 请求中可访问
maxAge: 24 * 60 * 60 * 1000, // 过期时间:24小时
});

ctx.body = `You have visited this page ${ctx.cookies.get('visitCount')} times.`;
});

app.listen(3000, () => {
console.log('Server listening on port 3000');
});