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

Java
49%
Apache 2.0

ClearFlask

Community · Product Management

450

Open-source feedback management and roadmap tool that lets product teams collect, prioritize, and respond to user input — with AI-powered summarization and full self-hosting control.

View details
82
Repo Health
73
Technical
62
Dependency
Built with
Java 49%
TypeScript 46%
Updated 2 weeks ago
JavaScript
83%
Other

Countly

Analytics · Marketing

5,921

Privacy-first, self-hosted analytics and customer engagement platform with full data ownership, GDPR compliance, and AI-powered insights across mobile, web, desktop, and IoT.

View details
96
Repo Health
82
Technical
65
Dependency
Built with
JavaScript 83%
Updated 6 days ago
TypeScript
80%
Other

Directus

CMS · Low Code Platforms

38,629

Connect any SQL database and get instant REST and GraphQL APIs, a visual management Studio, and a native MCP server for AI agents — free for most organizations.

View details
93
Repo Health
82
Technical
76
Dependency
Built with
TypeScript 80%
Vue 19%
Updated 6 days ago
TypeScript
62%
Other

Flowise

AI Development · Automation · Developer Tools

55,521

Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.

View details
75
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 62%
JavaScript 27%
Updated 2 months ago
TypeScript
54%
MIT

FormBee

Forms Surveys

769

A self-hostable form backend that accepts HTML form submissions and routes them to email, Telegram, Discord, webhooks, and automation platforms — without writing any server-side code.

View details
41
Repo Health
48
Technical
70
Dependency
Built with
TypeScript 54%
SCSS 25%
HTML 19%
Updated 1 months ago
TypeScript
79%
AGPL 3.0

Ghostfolio

Invoicing Finance

9,565

Track your stocks, ETFs, and crypto with a privacy-first, self-hostable wealth management platform built for data-driven investors.

View details
93
Repo Health
79
Technical
67
Dependency
Built with
TypeScript 79%
HTML 19%
Updated 6 days ago
TypeScript
83%
Apache 2.0

Grist

Databases · No Code Platforms

11,991

A modern relational spreadsheet that combines Python-powered formulas, drag-and-drop dashboards, and granular access controls in a self-hostable, SQLite-backed data platform.

View details
91
Repo Health
93
Technical
63
Dependency
Built with
TypeScript 83%
Python 11%
Updated 6 days ago
TypeScript
98%
Other

GrowthBook

Ab Testing Experimentation · Analytics · Developer Tools

8,527

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
63
Dependency
Built with
TypeScript 98%
Updated 5 days ago
Go
69%
Other

Hanko

Authentication · Security

9,045

Open source, self-hostable authentication platform with passkeys, SAML SSO, and OAuth — the privacy-first alternative to Auth0 and Clerk.

View details
90
Repo Health
81
Technical
66
Dependency
Built with
Go 69%
TypeScript 27%
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