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

Auto‑Imports and Aliases

What the module registers for you.
Prompt
Use auto-imported utilities from @onmax/nuxt-better-auth.

- Client (auto-imported in Vue): `useUserSession()`, `useSignIn()`, `useSignUp()`
- Server (auto-imported in `server/`): `serverAuth(event?)`, `getRequestSession(event)`, `getUserSession(event)`, `requireUserSession(event, options?)`
- Component: `<BetterAuthState>` for auth-ready rendering
- Alias `#nuxt-better-auth` exports types: `AuthUser`, `AuthSession`, `AuthSocialProviderId`
- Use `getRequestSession(event)` over repeated `getUserSession(event)` calls — it caches per request

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

Auto‑imports

Client

  • useUserSession()
  • useSignIn()
  • useSignUp()

Server

  • serverAuth(event?)
  • getRequestSession(event)
  • getUserSession(event)
  • requireUserSession(event, options?)

Components

  • <BetterAuthState>

Usage Examples

Server Utils (auto-imported in server/)

server/api/profile.ts
export default defineEventHandler(async (event) => {
  // These are auto-imported, no import statement needed
  const requestSession = await getRequestSession(event)
  const session = await getUserSession(event)
  const auth = serverAuth(event)
})

Use getRequestSession(event) when multiple handlers or middleware in the same request need session data. The helper should be preferred over repeated getUserSession(event) calls in the same request chain. getUserSession(event) does not memoize by itself.

Client Composables (auto-imported in Vue components)

pages/dashboard.vue
<script setup>
// Auto-imported, no import statement needed
const { user, loggedIn } = useUserSession()
</script>

Aliases

AliasResolves to
#nuxt-better-authModule types (AuthUser, AuthSession, AuthSocialProviderId)