Better Auth Plugins
Goals
-
Add server plugins to extend auth features.
-
Add client plugins for matching client methods.
-
Apply schema changes when plugins add tables.
Quick start
-
Import the plugin from better-auth/plugins and add it to plugins .
-
Run migrations (generate or migrate ) when required.
-
Add the client plugin from better-auth/client/plugins .
Example: Two-factor authentication
import { betterAuth } from "better-auth"; import { twoFactor } from "better-auth/plugins";
export const auth = betterAuth({ plugins: [twoFactor()], });
import { createAuthClient } from "better-auth/client"; import { twoFactorClient } from "better-auth/client/plugins";
export const authClient = createAuthClient({ plugins: [twoFactorClient({ twoFactorPage: "/two-factor" })], });
Migration reminder
Run the CLI when a plugin adds tables:
npx @better-auth/cli generate
npx @better-auth/cli migrate
Guardrails
-
Add server and client plugins together to keep APIs aligned.
-
Keep nextCookies (if used) last in the server plugin list.
-
Review plugin docs for required schema and env variables.
References
- toolchains/platforms/auth/better-auth/better-auth-plugins/references/plugins-index.md