X Enterprises

fastify-xauth-better

Production-ready Better Auth integration for Fastify with multi-instance support, organizations, 2FA, and audit logging.

fastify-xauth-better

Production-ready Better Auth plugin for Fastify with multi-instance support, organizations, 2FA, audit logging, and email templates.

Installation

npm install @xenterprises/fastify-xauth-better

Quick Start

await fastify.register(xAuthBetter, {
  secret: process.env.BETTER_AUTH_SECRET,
  database: { url: process.env.DATABASE_URL },
  trustedOrigins: ['https://app.example.com'],
  features: {
    organizations: true,
    twoFactor: true,
    emailVerification: true,
  },
})

Configuration

OptionTypeDescription
secretstringAuth secret (min 32 chars)
database.urlstringPostgreSQL connection string
trustedOriginsstring[]Allowed CORS origins
features.organizationsbooleanEnable org management
features.twoFactorbooleanEnable 2FA (TOTP)
features.emailVerificationbooleanRequire email verification

Routes

The plugin registers /api/auth/** routes automatically via Better Auth's Fastify adapter.

Decorators

// Check auth in route handler
fastify.get('/profile', {
  preHandler: fastify.authenticate
}, async (request) => {
  const user = request.user // typed User object
  return user
})

AI Context

package: "@xenterprises/fastify-xauth-better"
type: fastify-plugin
auth-system: Better Auth (better-auth.dev)
decorates: [fastify.authenticate, request.user]
routes: /api/auth/** (auto-registered by Better Auth)
use-when: Full-featured auth with orgs, 2FA, social login
env-required: [BETTER_AUTH_SECRET, DATABASE_URL]
session: database-backed sessions
multi-instance: supports multiple auth configs (e.g., admin + user)
Copyright © 2026