为 Web 应用提供灵活、安全的身份验证解决方案。

所在地:
美国
语言:
en
收录时间:
2026-08-26

核心定位

Auth.js 是一个面向现代 Web 应用的开源身份验证框架。它的前身是 NextAuth.js,后来扩展为框架无关的解决方案,目前支持 Next.js、SvelteKit、SolidStart 等主流框架,也提供通用核心库供其他环境集成。

该项目的设计目标明确:将身份验证中最易出错的部分——会话管理、令牌刷新、OAuth 流程、数据库适配——封装为可配置的模块,同时保留足够的扩展空间应对业务差异。

主要能力

多策略认证

Auth.js 支持四类认证方式,可单独或组合使用:

认证类型 适用场景 配置复杂度
OAuth / OIDC 第三方登录(Google、GitHub 等)
Email 无密码邮件链接登录
Credentials 自定义用户名密码
WebAuthn 硬件密钥 / 生物识别

内置超过 80 个 OAuth 提供方的预设配置,覆盖从主流平台到小众服务的广泛范围。

数据库适配器

框架通过适配器模式连接持久层。官方维护的适配器包括:

  • Prisma
  • Drizzle ORM
  • TypeORM
  • MongoDB
  • PostgreSQL(原生)
  • MySQL
  • SQLite
  • 以及 Firebase、Supabase 等 BaaS 平台

无数据库场景同样受支持,可使用 JWT 策略将会话状态编码在令牌中,省去服务端存储。

安全默认值

项目在安全方面采取了几项值得注意的默认策略:

  • 会话令牌使用 HttpOnly Cookie 存储,前端 JavaScript 不可读取
  • CSRF 防护默认开启,校验 state 参数与双重提交 Cookie
  • OAuth 回调强制校验 statepkce(对支持的服务)
  • 敏感操作支持签名与加密的 JWT 编码方式

需要说明的是,安全默认值降低的是“无意中犯错”的概率,不代表部署后无需安全审查。

集成与部署

安装方式取决于目标框架。以 Next.js 为例:

npm install next-auth@beta

核心配置集中在单一文件中,通过导出一个处理函数完成初始化。配置项涵盖提供方列表、适配器、回调函数、事件钩子与自定义页面路径。

在无服务器环境(Vercel、Netlify、Cloudflare Workers)与自托管 Node 服务上均可运行。Edge Runtime 兼容性是项目近期迭代的重点方向之一。

适用边界

Auth.js 适合以下场景:

  • 需要快速接入多种第三方登录的中小型应用
  • 希望避免自研会话逻辑的团队
  • 使用 Next.js 或 SvelteKit 且不想绑定商业身份服务

以下场景可能需要额外评估:

  • 高度定制的企业级权限模型(RBAC/ABAC 需自行实现)
  • 对认证流程有特殊合规要求(如特定地区的实名认证)
  • 需要与既有自研认证系统深度整合

关键要点

  • 开源免费(MIT 协议),社区活跃,迭代频率较高
  • 框架支持从 Next.js 起步,但核心与框架解耦
  • 数据库适配器机制使持久层选择灵活
  • 安全默认值合理,但生产部署仍需独立审查
  • 文档结构清晰,从入门到高级主题均有覆盖

相关导航