# Passport

Simple, unobtrusive authentication for Node.js.

Repository: https://github.com/jaredhanson/passport
Canonical: https://ross.abutalabs.com/products/passport
Homepage: https://www.passportjs.org?utm_source=github&utm_medium=referral&utm_campaign=passport&utm_content=about
Language: JavaScript
License: MIT
License Family: permissive
Topics: nodejs, express, passport, oauth, oauth2, saml, openid-connect, openid
Last push: 2024-08-16T21:56:14+00:00
Link (homepage): https://www.passportjs.org?utm_source=github&utm_medium=referral&utm_campaign=passport&utm_content=about
Link (site_page): https://www.passportjs.org/docs
Link (site_page): https://www.passportjs.org/features

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 5443, "days_push": 747, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 23534, forks 1257 (observed 2026-08-28T04:11:35.051526+00:00)

## What it is
Passport is authentication middleware for Node.js and Express that authenticates requests through a modular system of 500+ strategy plugins (local username/password, OAuth, SAML, OpenID Connect, and more). It does not mount routes or assume a database schema, leaving application-level decisions to the developer.

## Use cases
- add username and password login to an Express app
- implement sign-in with Google, Facebook, or GitHub
- add OAuth2 or OpenID Connect single sign-on to a Node.js app
- support SAML enterprise single sign-on
- persist authenticated sessions in a Node.js web app
- write a custom authentication strategy for Node.js

## When to choose
- you are building a Node.js or Express web app and need flexible, pluggable authentication
- you want to support many login providers via a single middleware API
- you need fine-grained control over routes, sessions, and success/failure handling

## When to avoid
- you want a fully managed, batteries-included identity solution with hosted login pages
- you are not using Node.js
- you need authorization/permissions management rather than request authentication

## Facets
- artifact type: library
- maturity: stable
- function: auth, middleware, web-framework
- domain: web-development, backend, security
- platform: -
- tags: express, oauth, oauth2, saml, openid-connect, authentication-strategies, session-management, single-sign-on, authentication, nodejs, web-server

## Member repositories
- jaredhanson/passport (main) score 32
- jaredhanson/passport-local (plugin) score 32
- jaredhanson/passport-facebook (plugin) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:35.051526+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:56:27.136081+00:00, confidence not recorded.
  - readme: https://github.com/jaredhanson/passport (fetched 2026-08-28T04:11:35.051526+00:00, sha c3900ee57c65)
  - homepage: https://www.passportjs.org?utm_source=github&utm_medium=referral&utm_campaign=passport&utm_content=about (fetched 2026-08-29T07:55:18.416097+00:00, sha 3ed1ca7d5bbf)
  - site_page: https://www.passportjs.org/docs (fetched 2026-08-29T07:55:18.425851+00:00, sha 14ad19cd2405)
  - site_page: https://www.passportjs.org/features (fetched 2026-08-29T07:55:18.427776+00:00, sha a157014b0395)
  - registry_npm: https://registry.npmjs.org/passport-facebook (fetched 2026-08-29T07:55:18.437819+00:00, sha e2029c697e9c)
  - registry_npm: https://registry.npmjs.org/passport (fetched 2026-08-29T07:55:18.434572+00:00, sha 314a67856205)
  - registry_npm: https://registry.npmjs.org/passport-local (fetched 2026-08-29T07:55:18.436193+00:00, sha 739791bf7301)
- Data as of 2026-08-30T08:39:29.467469+00:00.
