Loading...
Loading...
Skill for creating auth layers in TypeScript/JavaScript apps using Better Auth.
npx skill4agent add better-auth/skills create-auth-skillIs this a new/empty project?
├─ YES → New project setup
│ 1. Identify framework
│ 2. Choose database
│ 3. Install better-auth
│ 4. Create auth.ts + auth-client.ts
│ 5. Set up route handler
│ 6. Run CLI migrate/generate
│ 7. Add features via plugins
│
└─ NO → Does project have existing auth?
├─ YES → Migration/enhancement
│ • Audit current auth for gaps
│ • Plan incremental migration
│ • See migration guides in docs
│
└─ NO → Add auth to existing project
1. Analyze project structure
2. Install better-auth
3. Create auth config
4. Add route handler
5. Run schema migrations
6. Integrate into existing pagesnpm install better-auth| Package | Use case |
|---|---|
| WebAuthn/Passkey auth |
| SAML/OIDC enterprise SSO |
| Stripe payments |
| SCIM user provisioning |
| React Native/Expo |
BETTER_AUTH_SECRET=<32+ chars, generate with: openssl rand -base64 32>
BETTER_AUTH_URL=http://localhost:3000
DATABASE_URL=<your database connection string>GITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGOOGLE_CLIENT_IDlib/auth.tssrc/lib/auth.tsdatabaseemailAndPassword: { enabled: true }socialProvidersemailVerification.sendVerificationEmailemailAndPassword.sendResetPasswordpluginssessionaccount.accountLinkingrateLimitexport type Session = typeof auth.$Infer.Session| Framework | Import |
|---|---|
| React/Next.js | |
| Vue | |
| Svelte | |
| Solid | |
| Vanilla JS | |
createAuthClient({ plugins: [...] })signInsignUpsignOutuseSessiongetSession| Framework | File | Handler |
|---|---|---|
| Next.js App Router | | |
| Next.js Pages | | |
| Express | Any file | |
| SvelteKit | | |
| SolidStart | Route file | |
| Hono | Route file | |
nextCookies()| Adapter | Command |
|---|---|
| Built-in Kysely | |
| Prisma | |
| Drizzle | |
| Database | Setup |
|---|---|
| SQLite | Pass |
| PostgreSQL | Pass |
| MySQL | Pass |
| Prisma | |
| Drizzle | |
| MongoDB | |
| Plugin | Server Import | Client Import | Purpose |
|---|---|---|---|
| | | 2FA with TOTP/OTP |
| | | Teams/orgs |
| | | User management |
| | - | API token auth |
| | - | API docs |
| | | WebAuthn |
| | - | Enterprise SSO |
signIn.email({ email, password })signIn.social({ provider, callbackURL })erroruseSession(){ data: session, isPending }auth.api.getSession({ headers: await headers() })/sign-inBETTER_AUTH_SECRETadvanced.useSecureCookies: truetrustedOriginsaccount.accountLinking| Issue | Fix |
|---|---|
| "Secret not set" | Add |
| "Invalid Origin" | Add domain to |
| Cookies not setting | Check |
| OAuth callback errors | Verify redirect URIs in provider dashboard |
| Type errors after adding plugin | Re-run CLI generate/migrate |