用途:该技能用于在 NestJS 项目中实现用户认证,包括登录、JWT 令牌生成与校验、Passport 策略(local、JWT、OAuth 等)、认证守卫、受保护路由、注册与登录端点、令牌刷新以及第三方登录集成。
主要能力:提供从依赖安装到完整认证流程的分步示例,包括 UsersService、AuthService、AuthModule、AuthController、AuthGuard 的创建;Passport 的 LocalStrategy 与 JwtStrategy 注册与使用;通过 @Public 装饰器配合全局守卫开放公开路由;访问令牌与刷新令牌的签发与刷新;Google OAuth 策略与回调控制器;自定义 @User 参数装饰器;基于 express-session 的会话认证与序列化器。
必要用法:安装依赖使用 npm install @nestjs/jwt @nestjs/passport passport passport-local passport-jwt,开发依赖 npm install -D @types/passport-local @types/passport-jwt。密钥通过环境变量提供,如 process.env.JWT_SECRET、JWT_REFRESH_SECRET、SESSION_SECRET、GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET。守卫通过 @UseGuards(AuthGuard) 或 @UseGuards(AuthGuard('jwt')) 应用,全局守卫通过 APP_GUARD 注册。
适用场景:需要为 NestJS 后端添加登录、令牌校验、路由保护、刷新令牌或第三方登录时。
限制与注意:资料强调不要存储明文密码,应使用 bcrypt 或 argon2;访问令牌建议短时效(15 分钟至 1 小时),刷新令牌建议 7 至 30 天;生产环境使用 HTTPS、强随机密钥(至少 32 字符)、令牌轮换、过期校验、限流并记录认证事件。资料未提供具体版本兼容性、性能数据或收费信息。