Better Auth Integrations
Goals
-
Mount the Better Auth handler at /api/auth/* (or a custom base path).
-
Use framework helpers where available.
-
Ensure cookies and headers flow correctly in SSR and server actions.
Quick start
-
Create an auth instance (see better-auth-core ).
-
Add a catch-all route for /api/auth/* .
-
Use a framework helper (or auth.handler ) to return a Response.
Next.js App Router
import { auth } from "@/lib/auth"; import { toNextJsHandler } from "better-auth/next-js";
export const { GET, POST } = toNextJsHandler(auth);
Next.js Pages Router
import { auth } from "@/lib/auth"; import { toNodeHandler } from "better-auth/node";
export const config = { api: { bodyParser: false } }; export default toNodeHandler(auth.handler);
Cookie handling in Next.js server actions
Use the nextCookies plugin so server actions set cookies correctly.
import { betterAuth } from "better-auth"; import { nextCookies } from "better-auth/next-js";
export const auth = betterAuth({ // ...config plugins: [nextCookies()], });
Guardrails
-
Keep the base path consistent between server and client.
-
Prefer framework helpers when available.
-
Avoid running custom body parsers before the auth handler.
References
-
toolchains/platforms/auth/better-auth/better-auth-integrations/references/nextjs.md
-
toolchains/platforms/auth/better-auth/better-auth-integrations/references/frameworks.md