Auth.js
Auth.js 是一个 运行时无关、基于标准 Web API 的认证库,旨在为各种 JavaScript 框架(Next.js、Nuxt、Qwik、Express 等)提供统一、可扩展且安全的身份验证方案。它从 NextAuth.js 演进而来,已脱离对特定框架的依赖,采用 @auth/* 命名空间进行发布。 Auth.js官网入口网址:https://authjs.dev/ 主要特性 多种认证方式:支持 OAuth(Google、GitHub、Twitter/X 等)、Magic Link、凭证(Credentials)以及 WebAuthn(硬件安全密钥)框架无关:同时提供 @auth/next, @auth/express, @auth/qwik, @auth/nuxt 等适配器,开发者可在任意 Node.js 环境中使用丰富的提供者:官方预置数十个 OAuth 提供者,亦可自定义实现会话与令牌管理:内置 Session、JWT、Refresh Token 轮转等机制,支持自定义回调处理错误或强制重新登录数据库适配器:支持 Prisma、MongoDB、Supabase、Drizzle 等多种持久化方案,亦可自行实现适配器安全性:默认使用 HttpOnly Cookie、CSRF 防护、PKCE(OAuth)等最佳实践TypeScript 完整类型:所有 API 均提供官方类型声明,开发体验友好 适用场景 企业级 SaaS:支持多提供者、可自定义数据库适配器、完善的安全机制单页应用(SPA):支持 JWT、Refresh Token、Edge 环境,适配 Vercel/Cloudflare移动端或桌面端:可配合 @auth/core 与 OAuth PKCE 流程使用自定义登录表单:Credentials Provider 让你自行实现用户名/密码、验证码等业务逻辑 Auth.js 通过 统一的核心库 + 多框架适配器 设计,实现了 跨平台、灵活可扩展 的身份验证解决方案。它兼顾 安全性(HttpOnly Cookie、CSRF、PKCE)与 开发体验(TypeScript、丰富的提供者、可插拔的适配器),已成为现代 JavaScript 项目中首选的认证库之一。若你正在构建需要用户登录的 Web 应用,Auth.js 提供了从 快速入门 到 深度定制 的完整路径。
NextAuth.js 是专为 Next.js 生态打造的完整开源身份认证解决方案,由 Auth.js(原 NextAuth.js)官方维护。它通过统一的 API 为前端页面、服务器端渲染(SSR)以及静态站点生成(SSG)提供一致的登录、注销、会话管理等功能,并兼容 Next.js 的 App Router 与 Pages Router 两种路由模式。 NextAuth.js官网入口网址:https://next-auth.js.org/NextAuth.js开源项目地址:https://github.com/nextauthjs/next-auth 核心特性包括: 多种认证方式:内置对 OAuth 1.0、OAuth 2.0、OpenID Connect、GitHub、Google、Twitter、Discord 等主流第三方提供商的支持;同时支持基于邮箱的密码登录、凭证(Credentials)登录以及无密码的 Passkey/WebAuthn 等本地方式。会话管理:提供 SessionProvider 包裹整个 React 应用,自动处理会话的获取、轮询刷新以及过期控制;可通过 useSession Hook 在组件中直接读取用户信息,亦可在服务器端使用 getSession、getToken 等函数获取会话数据。灵活的配置:支持自定义会话生命周期、回调函数、重定向行为以及 CSRF 防护;在使用 App Router 时推荐导出 auth() 进行统一配置,简化路由层面的权限控制。数据库适配器:提供官方 Prisma、MongoDB、PostgreSQL、MySQL、SQLite 等适配器,能够持久化用户、账户、会话等数据;也支持自定义适配器以对接任意持久层。安全与可扩展:默认使用 JWT 或基于数据库的会话存储,支持自定义加密密钥 AUTH_SECRET,并提供完整的 CSRF、状态码校验以及错误处理机制;社区活跃,文档完善,易于二次开发和插件化扩展。 使用流程通常为: 安装 npm install next-auth(或 next-auth@beta 以获取最新特性)。在 app/api/auth/[…nextauth]/route.js(或 pages/api/auth/[…nextauth].js)中配置 providers、callbacks、session 等选项。在页面或组件中通过 signIn、signOut、useSession 等 API 调用认证流程。 凭借上述特性,NextAuth.js 能帮助开发者在几行配置代码内实现安全、可定制且跨平台的用户身份验证,极大降低了手动实现 OAuth、会话持久化和安全防护的复杂度,是构建现代 Next.js 应用的首选认证库。