SKILL.md
readonlyread-only
name
better-auth-authentication
description
Better Auth authentication flows for TypeScript apps. Use when enabling email/password auth, configuring social providers, or implementing sign-up, sign-in, and verification flows.
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.
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,
},
},
});
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.mdtoolchains/platforms/auth/better-auth/better-auth-authentication/references/providers.md
You Might Also Like
Related Skills

verify
243K
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
facebook
test
243K
Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.
facebook
feature-flags
243K
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
facebook
extract-errors
243K
Use when adding new error messages to React, or seeing "unknown error code" warnings.
facebook