SuperAPI AI 工具集

adding-auth

安全与审计

查看项目

更新于 10-15 21:05

技能介绍

用途:在 Web 应用中添加身份验证,包括登录、注册、OAuth 与会话管理。

主要能力:通过 NextAuth.js(Auth.js)配置 OAuth 提供商(如 GitHub、Google),生成认证密钥,创建认证配置与路由处理器,并支持服务端组件或中间件保护路由;可选接入数据库适配器以实现持久会话或用户记录。

使用方式:先安装依赖 npm install next-auth@beta,再运行 npx auth secret 生成密钥并写入 .env.local。在项目根目录创建 auth.ts,从 next-auth 导入 NextAuth 及所需提供商并导出 handlers、signIn、signOut、auth。创建 app/api/auth/[...nextauth]/route.ts,导出 handlers 的 GET、POST。为每个提供商配置环境变量,如 AUTH_SECRET、AUTH_GITHUB_ID、AUTH_GITHUB_SECRET、AUTH_GOOGLE_ID、AUTH_GOOGLE_SECRET。登录/登出界面可调用 signIn、signOut 服务端操作,或使用链接 /api/auth/signin。保护路由时,在服务端组件或中间件中调用 auth(),无会话则跳转登录页。

适用场景:Next.js App Router 与 Server Actions 项目可原生使用 Auth.js v5;Pages Router 项目则使用 getServerSession 与 useSession。

限制与注意:可选数据库适配器(如 @auth/drizzle-adapter、@auth/prisma-adapter)用于持久会话或用户记录;生产部署需添加 NEXTAUTH_URL;会话中应只存最少用户数据,完整资料按需从数据库获取。