SuperAPI AI 工具集

nextauth

编程与开发

查看项目

更新于 10-15 21:49

技能介绍

用途:NextAuth.js(演进为 Auth.js)是 Next.js 的官方认证方案,用于为全栈应用接入登录与会话管理,支持 App Router 和 Pages Router。

主要能力:可对接任意 OAuth 服务(如 GitHub、Google、Apple 及企业 OIDC/SAML),支持邮箱/无密码登录;通过数据库适配器(Prisma、Drizzle、TypeORM 等)把用户资料与账号同步到 PostgreSQL、MySQL 或 MongoDB;也可使用轻量 JWT Cookie 会话,在无数据库的 Serverless 环境完成加密 Cookie 校验。v5 提供统一的 auth.ts 配置,导出 handlers、auth、signIn、signOut。

使用方式:在 auth.ts 中调用 NextAuth 并配置 providers、adapter、session 策略与 callbacks;在 app/api/auth/[...nextauth]/route.ts 中导出 GET、POST handlers;在 Server Component 中用 await auth() 读取会话,未登录时可用 redirect 跳转。自定义字段(如 role、id)通过 jwt 与 session 回调注入会话。

适用场景:Next.js 全栈认证、多提供商登录、数据库会话存储、Serverless JWT 会话。

限制与注意:需设置安全的 AUTH_SECRET(如 openssl rand -base64 33 并存入 .env.local);反向代理或容器部署时设置 AUTH_TRUST_HOST=true;不要在 Server Component 用客户端 hooks 取会话;session 会下发到浏览器,勿在其中放敏感数据库凭据;建议用 TypeScript 模块增强为自定义字段加类型。常见问题:JWEDecryptionFailed 多为 AUTH_SECRET 不一致,OAuthCallbackError 多为提供商回调地址配置不匹配。