This library is in early development. Expect breaking changes.
Core Concepts

serverAuth()

When to reach for the full Better Auth server instance.
Prompt
Use server-side auth utilities in @onmax/nuxt-better-auth.

- `serverAuth(event?)` — returns the Better Auth instance. Pass `event` in Nitro handlers for request-aware base URLs
- `getUserSession(event)` — get current session (auto-imported in `server/`)
- `requireUserSession(event, options?)` — throws 401 if not authenticated, supports role matching
- `getRequestSession(event)` — request-cached session, preferred over repeated `getUserSession` in same request
- All server utils are auto-imported, no import statements needed

Read more: https://better-auth.nuxt.dev/raw/core-concepts/server-auth.md
Source: https://github.com/nuxt-modules/better-auth

serverAuth(event?) returns the Better Auth instance (module-level singleton). In Nitro handlers, you should pass event so the module can resolve request-aware base URLs on initialization. Outside request contexts (seed scripts, tasks, plugins), you can call serverAuth() without an event.

When to Use What

TaskUseExample
Get request-cached session contextgetRequestSession(event)Cache once per request with context-backed storage when available
Get current sessiongetUserSession(event)Check if user is logged in
Require authenticationrequireUserSession(event)Protect an API route
Access Better Auth APIserverAuth(event)Call auth.api.listSessions()
Get session with optionsrequireUserSession(event, { user: { role: 'admin' } })Role-based protection