Better Auth Authentication
Goals
- •Enable email/password authentication and social providers.
- •Implement sign-up, sign-in, sign-out, and verification flows.
- •Handle redirects and errors consistently.
Quick start
- •Enable
emailAndPasswordand configuresocialProviders. - •Create a client with
createAuthClient. - •Use
signUp.email,signIn.email,signIn.social, andsignOuton the client.
ts
import { betterAuth } from "better-auth";
export const auth = betterAuth({
emailAndPassword: { enabled: true },
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
ts
import { createAuthClient } from "better-auth/client";
const authClient = createAuthClient();
await authClient.signUp.email({
email,
password,
name,
});
await authClient.signIn.email({
email,
password,
callbackURL: "/dashboard",
});
await authClient.signIn.social({
provider: "github",
callbackURL: "/dashboard",
});
await authClient.signOut();
Email verification
- •Provide
emailVerification.sendVerificationEmailto send the verification link. - •Use
emailAndPassword.requireEmailVerificationto enforce verification before sign-in.
Social providers
- •Configure providers in
socialProviderswith provider-specific credentials. - •Use
signIn.socialto start OAuth flows. - •Pass
callbackURL,errorCallbackURL, andnewUserCallbackURLfor redirects.
Guardrails
- •Call client methods from the client only.
- •Keep secrets in server-only env variables.
- •Use
rememberMeto control persistent sessions on email/password sign-in.
References
- •
toolchains/platforms/auth/better-auth/better-auth-authentication/references/email-password.md - •
toolchains/platforms/auth/better-auth/better-auth-authentication/references/providers.md