SuperAPI AI 工具集

passport

安全与审计

查看项目

更新于 10-15 21:49

技能介绍

用途:该技能提供 Passport.js 认证中间件的专家级协助,Passport 是 Node.js 的认证中间件,只负责认证请求,用户处理与会话等细节交由应用自行管理。适用于在 Node.js Express、Koa、NestJS 后端服务中集成认证,将 Local 用户名密码、JWT bearer 令牌与 OAuth2 策略组合在同一接口下,为已有 Express 单体应用添加认证,或基于其中间件契约编写自定义认证策略。

主要能力:可插拔策略架构,把凭据校验委托给 passport-local、passport-jwt、passport-google-oauth20 等插件;会话序列化与反序列化,在会话 cookie 中只存最小用户标识,后续请求再还原完整用户;面向 API 的无状态 JWT 策略,从 Authorization 头提取 bearer 令牌并校验,无需服务端会话状态。

使用方式:先注册策略,例如 passport.use(new LocalStrategy(...)),在路由中使用 passport.authenticate("local", { successRedirect: "/", failureRedirect: "/login" });JWT 场景用 ExtractJwt.fromAuthHeaderAsBearerToken() 与 secretOrKey 配置。

最佳实践:serializeUser 只存用户 ID;REST API 用无状态 JWT;异步数据库查询用 try/catch 并把异常传给 done(err);可用 connect-redis 横向共享会话。避免在会话中存完整用户对象、对 passport.authenticate('local') 不加限流、忘记调用 done()。

常见问题:passport.initialize() is not a function 需在 body 解析器之后调用 app.use(passport.initialize());受保护路由 401 需检查 Authorization: Bearer <token> 头与令牌是否过期;Unknown authentication strategy 需在挂载路由前注册策略。

限制:资料未提供安装命令、版本要求、收费与平台信息,暂未提供。