Passport.js 是面向 Node.js 的认证中间件,支持 500 多种认证策略,涵盖本地用户名/密码、OAuth、JWT 等方式,适合在 Express/Node.js 中构建 API 与自定义认证。
主要能力:本地策略校验账号密码(常配合 bcrypt 比对密码哈希);JWT 策略实现无状态 API 认证;OAuth 策略(如 Google、GitHub)支持第三方登录;通过 serializeUser/deserializeUser 将会话与用户关联;可组合本地与 OAuth 多策略;支持 Redis、Postgres 等会话存储;通过中间件(如 isAuthenticated、hasRole)保护路由并做角色控制。
使用方式:安装 passport 与 express-session,按需安装策略包,例如 npm install passport express-session 与 npm install passport-local;JWT 场景安装 npm install passport-jwt jsonwebtoken 及类型包;OAuth 场景安装 npm install passport-google-oauth20 或 npm install passport-github2。在应用中初始化 express-session、passport.initialize() 与 passport.session(),配置策略,并在登录路由使用 passport.authenticate,在受保护路由前挂载认证中间件。会话存储可安装 connect-redis 配合 redis,或 connect-pg-simple 配合 Postgres。
适用场景:为 Express/Node.js API 增加登录、会话与路由保护,实现第三方 OAuth 登录或 JWT 无状态鉴权。
限制:资料未提供内置收费、价格与效果信息;具体策略行为依赖所选策略包与配置,示例中的数据库查询、密钥与用户模型需由项目自行实现;生产环境需注意密码哈希、Cookie 安全与登录限流等最佳实践,资料未给出统一默认方案。