Appearance
cookie-parser 核心功能实现
项目概述
本项目手写实现了一个轻量级的 cookie-parser 中间件,支持基本 Cookie 解析和签名验证。
项目结构
cookie-parser-core/
├── package.json
├── src/
│ ├── index.js # 主入口
│ └── parse.js # Cookie 解析器
└── test/
└── index.test.js安装
bash
npm install使用
基本使用
javascript
const cookieParser = require('./src/index.js');
const express = require('express');
const app = express();
// 解析 Cookie
app.use(cookieParser());
// 访问解析后的 Cookie
app.get('/', (req, res) => {
console.log(req.cookies);
res.send('Hello World');
});
app.listen(3000);签名 Cookie
javascript
// 使用 secret 密钥
app.use(cookieParser('secret-key'));
// 访问签名 Cookie
app.get('/', (req, res) => {
console.log(req.signedCookies);
res.send('Hello World');
});运行测试
bash
npm test核心功能
1. Cookie 解析
解析 Cookie 字符串为对象。
2. 签名验证
验证签名 Cookie 的完整性。
3. URL 解码
自动解码 Cookie 值。
可扩展功能点
1. 自定义解码
支持自定义解码函数:
javascript
// TODO: 实现自定义解码
function customDecode(value) {
// 自定义解码逻辑
return decodedValue;
}2. Cookie 过期
支持 Cookie 过期检查:
javascript
// TODO: 实现过期检查
function checkExpiry(cookie) {
// 检查 Cookie 是否过期
return isExpired;
}3. Cookie 域名
支持 Cookie 域名验证:
javascript
// TODO: 实现域名验证
function checkDomain(cookie, domain) {
// 验证 Cookie 域名
return isValid;
}相关资源
下一步
完成本课程后,建议继续学习:
- express-session - 学习会话管理
- body-parser - 学习请求体解析
- helmet - 学习安全 HTTP 头
