template/.claude/skills/nuxt-better-auth/SKILL.md
Use when implementing auth in Nuxt apps with @onmax/nuxt-better-auth - provides useUserSession composable, server auth helpers, route protection, and Better Auth plugins integration.
npx skillsauth add charles5277/nuxt-supabase-starter nuxt-better-authInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
development
Pinia official Vue state management library, type-safe and extensible. Use when defining stores, working with state/getters/actions, or implementing store patterns in Vue apps.
development
Pinia Store 架構規範。Use when creating app/stores/**/*.ts files, working with defineStore, managing global state, or building Pinia stores. Always use this skill for store design patterns, naming conventions, and state management architecture.
tools
Push interfaces past conventional limits with technically ambitious implementations. Whether that's a shader, a 60fps virtual table, spring physics on a dialog, or scroll-driven reveals — make users ask "how did they do that?"
content-media
Improve interface performance across loading speed, rendering, animations, images, and bundle size. Makes experiences faster and smoother.