nuxt-better-auth
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseNuxt Better Auth
Nuxt Better Auth
Authentication module for Nuxt 4+ built on Better Auth. Provides composables, server utilities, and route protection.
Alpha Status: This module is currently in alpha (v0.0.2-alpha.19) and not recommended for production use. APIs may change.
这是为Nuxt 4+构建的认证模块,基于Better Auth开发。提供组合式函数、服务端工具以及路由保护功能。
Alpha状态:该模块目前处于alpha版本(v0.0.2-alpha.19),不建议用于生产环境。API可能会发生变更。
When to Use
使用场景
- Installing/configuring
@onmax/nuxt-better-auth - Implementing login/signup/signout flows
- Protecting routes (client and server)
- Accessing user session in API routes
- Integrating Better Auth plugins (admin, passkey, 2FA)
- Setting up database with NuxtHub
- Using clientOnly mode for external auth backends
- Adding i18n support with
@nuxtjs/i18n
For Nuxt patterns: use skill
For NuxtHub database: use skill
nuxtnuxthub- 安装/配置
@onmax/nuxt-better-auth - 实现登录/注册/登出流程
- 保护路由(客户端和服务端)
- 在API路由中访问用户会话
- 集成Better Auth插件(管理后台、密钥登录、双因素认证)
- 使用NuxtHub设置数据库
- 为外部认证后端使用clientOnly模式
- 集成添加国际化支持
@nuxtjs/i18n
关于Nuxt模式:使用技能
关于NuxtHub数据库:使用技能
nuxtnuxthubAvailable Guidance
可用指南
| File | Topics |
|---|---|
| references/installation.md | Module setup, env vars, config files |
| references/client-auth.md | useUserSession, signIn/signUp/signOut, BetterAuthState, safe redirects |
| references/server-auth.md | serverAuth, getUserSession, requireUserSession |
| references/route-protection.md | routeRules, definePageMeta, middleware |
| references/plugins.md | Better Auth plugins (admin, passkey, 2FA) |
| references/database.md | NuxtHub integration, Drizzle schema, custom tables with FKs |
| references/client-only.md | External auth backend, clientOnly mode, CORS |
| references/types.md | AuthUser, AuthSession, type augmentation |
| 文件 | 主题 |
|---|---|
| references/installation.md | 模块设置、环境变量、配置文件 |
| references/client-auth.md | useUserSession、signIn/signUp/signOut、BetterAuthState、安全重定向 |
| references/server-auth.md | serverAuth、getUserSession、requireUserSession |
| references/route-protection.md | routeRules、definePageMeta、中间件 |
| references/plugins.md | Better Auth插件(管理后台、密钥登录、双因素认证) |
| references/database.md | NuxtHub集成、Drizzle schema、带外键的自定义表 |
| references/client-only.md | 外部认证后端、clientOnly模式、跨域资源共享(CORS) |
| references/types.md | AuthUser、AuthSession、类型扩展 |
Loading Files
加载文件
Consider loading these reference files based on your task:
- references/installation.md - if installing or configuring the module
- references/client-auth.md - if building login/signup/signout flows
- references/server-auth.md - if protecting API routes or accessing user session server-side
- references/route-protection.md - if using routeRules or definePageMeta for auth
- references/plugins.md - if integrating Better Auth plugins (admin, passkey, 2FA)
- references/database.md - if setting up database with NuxtHub or Drizzle
- references/client-only.md - if using external auth backend with clientOnly mode
- references/types.md - if working with AuthUser, AuthSession, or type augmentation
DO NOT load all files at once. Load only what's relevant to your current task.
请根据你的任务加载相关的参考文件:
- references/installation.md - 如果正在安装或配置模块
- references/client-auth.md - 如果正在构建登录/注册/登出流程
- references/server-auth.md - 如果正在保护API路由或在服务端访问用户会话
- references/route-protection.md - 如果正在使用routeRules或definePageMeta进行认证
- references/plugins.md - 如果正在集成Better Auth插件(管理后台、密钥登录、双因素认证)
- references/database.md - 如果正在使用NuxtHub或Drizzle设置数据库
- references/client-only.md - 如果正在为外部认证后端使用clientOnly模式
- references/types.md - 如果正在处理AuthUser、AuthSession或类型扩展
不要一次性加载所有文件。 只加载与当前任务相关的文件。
Key Concepts
核心概念
| Concept | Description |
|---|---|
| Client composable - user, session, loggedIn, signIn/Out methods |
| Server helper - throws 401/403 if not authenticated |
| |
| Get Better Auth instance in server routes |
| 概念 | 描述 |
|---|---|
| 客户端组合式函数 - 用户信息、会话、登录状态、signIn/Out方法 |
| 服务端助手 - 未认证时抛出401/403错误 |
| |
| 在服务端路由中获取Better Auth实例 |
Quick Reference
快速参考
ts
// Client: useUserSession()
const { user, loggedIn, signIn, signOut } = useUserSession()
await signIn.email({ email, password }, { onSuccess: () => navigateTo('/') })ts
// Server: requireUserSession()
const { user } = await requireUserSession(event, { user: { role: 'admin' } })ts
// nuxt.config.ts: Route protection
routeRules: {
'/admin/**': { auth: { user: { role: 'admin' } } },
'/login': { auth: 'guest' },
'/app/**': { auth: 'user' }
}ts
// 客户端:useUserSession()
const { user, loggedIn, signIn, signOut } = useUserSession()
await signIn.email({ email, password }, { onSuccess: () => navigateTo('/') })ts
// 服务端:requireUserSession()
const { user } = await requireUserSession(event, { user: { role: 'admin' } })ts
// nuxt.config.ts: 路由保护
routeRules: {
'/admin/**': { auth: { user: { role: 'admin' } } },
'/login': { auth: 'guest' },
'/app/**': { auth: 'user' }
}Resources
资源
Token efficiency: Main skill ~300 tokens, each sub-file ~800-1200 tokens