Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Turn any website into LLM-ready data with Firecrawl logoTurn any website into LLM-ready data with Firecrawl

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits plus 10% off through our link.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free

Installation

npx skills add https://github.com/onmax/nuxt-skills --skill nuxt-better-auth

Summary

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.

SKILL.md

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.

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 nuxt skill For NuxtHub database: use nuxthub skill

Available Guidance

FileTopics
references/installation.mdModule setup, env vars, config files
references/client-auth.mduseUserSession, signIn/signUp/signOut, BetterAuthState, safe redirects
references/server-auth.mdserverAuth, getUserSession, requireUserSession
references/route-protection.mdrouteRules, definePageMeta, middleware
references/plugins.mdBetter Auth plugins (admin, passkey, 2FA)
references/database.mdNuxtHub integration, Drizzle schema, custom tables with FKs
references/client-only.mdExternal auth backend, clientOnly mode, CORS
references/types.mdAuthUser, AuthSession, type augmentation

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.

Key Concepts

ConceptDescription
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

Quick Reference

// 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' }
}

Resources

---

_Token efficiency: Main skill ~300 tokens, each sub-file ~800-1200 tokens_

Recommended skills

Browse all →

Related guides

Hand-picked reading to help you choose, install, and use agent skills.