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/pluginsand add it toplugins. - •Run migrations (
generateormigrate) when required. - •Add the client plugin from
better-auth/client/plugins.
Example: Two-factor authentication
ts
import { betterAuth } from "better-auth";
import { twoFactor } from "better-auth/plugins";
export const auth = betterAuth({
plugins: [twoFactor()],
});
ts
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:
bash
npx @better-auth/cli generate
bash
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