cookie-parser

Express middleware that parses HTTP Cookie headers into req.cookies, with support for signed and JSON-encoded cookie values.

Library
npm
v1.4.7
2,032 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
49 /100 Fair
Development Activity 8
Maintenance 20
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
80 /100 Excellent
Architecture 78
Code Quality 75
Innovation 80
Learning Curve 88

cookie-parser is a small, widely-used Express middleware that reads the incoming request’s Cookie header and populates req.cookies with a plain object of cookie name/value pairs, so route handlers never have to parse raw cookie strings themselves. It builds on the standalone cookie package for header parsing and the cookie-signature package for HMAC-based signature verification, exposing a single middleware factory plus a handful of standalone helper functions.

Beyond basic parsing, it understands two conventions Express apps commonly rely on: signed cookies (prefixed s:, verified against one or more secrets and surfaced separately on req.signedCookies) and JSON cookies (prefixed j:, automatically JSON.parse’d). Because it has almost no configuration surface and a single runtime job, it has become a near-default dependency in Express-based session and auth middleware stacks despite receiving only maintenance-level updates.

What You Get

  • A single middleware factory (cookieParser(secret, options)) that populates req.cookies on every request
  • Optional signed-cookie support: verify and unsign s:-prefixed cookie values against one or more secrets, exposed via req.signedCookies
  • Automatic JSON cookie decoding for j:-prefixed values via JSONCookie/JSONCookies
  • Standalone helper exports (signedCookie, signedCookies, JSONCookie, JSONCookies) usable outside the middleware for custom cookie handling
  • Pass-through options support to the underlying cookie package’s parser (e.g. custom decode function)

Common Use Cases

  • Reading plain, unsigned cookies (feature flags, UI preferences, tracking IDs) in an Express route handler
  • Verifying signed session or auth cookies set by express-session or custom auth middleware without trusting client-tampered values
  • Storing small structured data in a cookie as JSON and having it auto-decoded into an object on every request
  • Building custom cookie-parsing logic in non-Express contexts by importing the exported signedCookie/JSONCookie helpers directly

Under The Hood

Architecture — The entire package is a single ~150-line index.js file that exports one default middleware factory plus four static helper functions (JSONCookie, JSONCookies, signedCookie, signedCookies). The factory closes over a normalized array of secrets and returns a request handler that reads req.headers.cookie, delegates raw parsing to the cookie package, then optionally splits the result into req.cookies and req.signedCookies by running each value through signedCookie (which itself delegates verification to cookie-signature). There is no internal state beyond what is attached per-request, and no async logic — parsing is synchronous end to end.

Tech Stack — Plain ES5-style JavaScript ('use strict', var declarations) with only two runtime dependencies: cookie (RFC 6265 header parsing) and cookie-signature (HMAC signing/verification). No build step or bundler — the package ships index.js directly per its files field. Dev tooling is eslint (standard config) for linting and mocha/supertest/nyc for testing and coverage.

Code Quality — test/cookieParser.js runs 302 lines of mocha+supertest tests covering unsigned, signed, JSON, and malformed-cookie scenarios, including tampered signature handling. The implementation uses Object.create(null) for cookie stores to avoid prototype-pollution surprises and defensive typeof/Array.isArray checks on inputs. Error handling is minimal by design — most edge cases resolve to undefined/false rather than throwing, appropriate given the package’s narrow scope, but there is no input-size or malformed-header hardening beyond what cookie provides.

API Design — The primary API is a single call, app.use(cookieParser()), with zero required configuration; secrets and parsing options are optional positional arguments. Helper functions are exposed as static properties on the default export for advanced use outside the middleware chain. The tradeoff for this simplicity is implicit request mutation (adding cookies/secret/signedCookies onto req), which is idiomatic for Express middleware but relies on convention rather than explicit typing.

Used by 52 apps in this directory

TypeScript
67%
Other

TaskView

Productivity · Project Management

1,367

Self-hosted project and task management platform for software teams, with Kanban boards, sprints, time tracking, GitHub/GitLab integrations, and an MCP server for AI assistants.

View details
78
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 67%
Vue 21%
Updated 1 weeks ago
TypeScript
99%
Other

Teable

Databases · No Code Platforms

21,920

A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.

View details
78
Repo Health
76
Technical
62
Dependency
Built with
TypeScript 99%
Updated 6 days ago
TypeScript
94%
Other

Termix

Devops

15,644

Manage all your servers — SSH terminals, remote desktops, file transfers, and Docker containers — from a single self-hosted browser interface.

View details
84
Repo Health
67
Technical
73
Dependency
Built with
TypeScript 94%
Updated 6 days ago
HTML
68%
AGPL 3.0

ToolJet

AI Agents · Low Code Platforms · No Code Platforms

41,123

Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
HTML 68%
JavaScript 20%
Updated 5 days ago
TypeScript
97%
Apache 2.0

Unleash

Ab Testing Experimentation · Developer Tools · Devops

13,899

The open-source feature management platform that lets you ship code to production and control who sees it — without redeploying.

View details
91
Repo Health
84
Technical
69
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
41%
AGPL 3.0

Wiki.js

Collaboration · Knowledge Management

29,081

A modern, self-hosted wiki platform built on Node.js with a rich plugin ecosystem for authentication, search, storage, and rendering that adapts to any team's infrastructure.

View details
95
Repo Health
67
Technical
60
Dependency
Built with
TypeScript 41%
Vue 39%
JavaScript 16%
Updated 5 days ago
TypeScript
72%
AGPL 3.0

Worklenz

Collaboration · Product Management · Project Management

3,259

All-in-one open source project management for teams who want full control — plan projects, track tasks, manage resources, and monitor finances without the SaaS lock-in.

View details
87
Repo Health
7
Technical
64
Dependency
Built with
TypeScript 72%
JavaScript 21%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers