用途:在 Next.js App Router 应用中集成 @neondatabase/auth,完成仅认证(不含数据库)的登录、注册、会话与路由保护配置。
主要能力:通过 createNeonAuth() 获得统一认证实例,提供 .handler()(API 路由处理)、.middleware()(路由保护)以及 Better Auth 服务端方法(signIn、signUp、getSession、signOut、updateUser、organization、admin 等)。提供客户端 createAuthClient()、useSession 钩子、AuthView 登录界面、SignedIn/SignedOut/AuthLoading/RedirectToSignIn 条件渲染、UserButton、账户与安全设置卡片、组织组件,以及 Google、GitHub 等社交登录。支持邮箱 OTP、邮箱验证、魔法链接、多会话、匿名访问与 JWT 获取,并具备会话缓存、请求去重与跨标签页同步。
使用方式:安装 npm install @neondatabase/auth;在 .env.local 配置 NEON_AUTH_BASE_URL 与至少 32 字符的 NEON_AUTH_COOKIE_SECRET(可用 openssl rand -base64 32 生成);在 lib/auth/server.ts 创建实例,在 app/api/auth/[...path]/route.ts 导出 auth.handler() 的 GET/POST,在 middleware.ts 使用 auth.middleware({ loginUrl }) 并配置 matcher,在客户端创建 authClient,用 NeonAuthUIProvider 包裹应用并设置 onSessionChange={() => router.refresh()},最后在 app/auth/[path]/page.tsx 用 AuthView 渲染认证页。样式二选一:import '@neondatabase/auth/ui/css' 或 Tailwind 的 @import '@neondatabase/auth/ui/tailwind',不可同时引入。
适用场景:Next.js App Router 项目的认证接入、受保护路由、账户管理页与组织功能。
限制:仅覆盖认证,不含数据库;服务端组件使用 auth 方法需设置 dynamic = 'force-dynamic';匿名访问需在数据库授予 anonymous 角色权限并配置 RLS;未提供收费、价格与平台支持等资料。