From nuxt-skills
Implements authentication in Nuxt 4+ using Better Auth, with composables, server helpers, and route protection.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nuxt-skills:nuxt-better-authThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Authentication module for Nuxt 4+ built on [Better Auth](https://www.better-auth.com/). Provides composables, server utilities, and route protection.
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.
@onmax/nuxt-better-auth@nuxtjs/i18nFor Nuxt patterns: use nuxt skill
For NuxtHub database: use nuxthub skill
| 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 |
Consider loading these reference files based on your task:
DO NOT load all files at once. Load only what's relevant to your current task.
| Concept | Description |
|---|---|
useUserSession() | Client composable - user, session, loggedIn, signIn/Out methods |
requireUserSession() | Server helper - throws 401/403 if not authenticated |
auth route mode | 'user', 'guest', { user: {...} }, or false |
serverAuth() | Get Better Auth instance in server routes |
// Client: useUserSession()
const { user, loggedIn, signIn, signOut } = useUserSession()
await signIn.email({ email, password }, { onSuccess: () => navigateTo('/') })
// Server: requireUserSession()
const { user } = await requireUserSession(event, { user: { role: 'admin' } })
// nuxt.config.ts: Route protection
routeRules: {
'/admin/**': { auth: { user: { role: 'admin' } } },
'/login': { auth: 'guest' },
'/app/**': { auth: 'user' }
}
Token efficiency: Main skill ~300 tokens, each sub-file ~800-1200 tokens
npx claudepluginhub onmax/nuxt-skills --plugin nuxt-skillsSets up Neon Auth in Next.js, React SPA, or Node.js apps. Configures auth routes, session management, social providers, and generates UI components.
Provides Nuxt 4 conventions: directory structure, SSR/SPA/hybrid rendering, file-based routing, auto-imports, data fetching, server routes, and deployment.
Better Auth in TypeScript — setting up the auth instance, picking adapters, wiring framework route handlers, configuring sessions and cookies, adding plugins (2FA, organization, admin, magicLink, JWT), or porting from NextAuth/Auth.js, Clerk, Auth0, or Supabase Auth. Covers Next.js, SvelteKit, Hono, Express, Nuxt, Astro, and React/Vue/Svelte clients. Trigger when writing, reviewing, or migrating Better Auth code — and even when the user doesn't explicitly mention Better Auth but is working on TypeScript authentication, session cookies, OAuth providers, or auth-library migration. Contains 42 rules organized by impact across 8 categories.