用途:为 Next.js 15+ App Router 项目提供使用 Auth.js 5(NextAuth.js)实现认证的参考模式,覆盖从初始配置到基于角色访问控制的完整生命周期。适用于从零搭建 Auth.js 5、添加 OAuth 提供方、用中间件保护路由、在 Server Components 与 Server Actions 中处理认证、实现 RBAC、创建凭证或 OAuth 登录登出流程。
主要能力与用法:安装依赖使用 npm install next-auth@beta;在 .env.local 中配置 AUTH_SECRET、AUTH_URL 及各 OAuth 提供方的 ID 与密钥,可用 openssl rand -base64 32 生成密钥。在项目根目录创建 auth.ts 导出 handlers、auth、signIn、signOut 并配置 providers、callbacks 与自定义页面。API 路由 app/api/auth/[...nextauth]/route.ts 直接导出 GET、POST。middleware.ts 用于路由保护,通过 matcher 排除静态资源。Server Components 中用 await auth() 获取会话并按需 redirect;Server Actions 必须先调用 auth() 校验再执行写入,并可用 unauthorized() 处理未授权访问。可扩展 types/next-auth.d.ts 定义会话与 JWT 中的自定义字段(如 id、role)。
限制与注意:Middleware 运行于 Edge 运行时,不能使用数据库驱动等 Node.js API;Server Components 无法设置 cookie,需改用 Server Actions;仅靠中间件不足以保证安全,Server Actions 中必须再次校验;敏感令牌应存入 httpOnly cookie,生产环境使用 HTTPS,并妥善设置 cookie 的 sameSite 属性。资料未提供具体价格、收费或效果数据。