К основному содержанию
скилл CX Codex

better-auth · mrgoonie — скилл для Claude Code: аутентификация в TypeScript

Скилл проводит агента по подключению Better Auth: email-пароли, OAuth, 2FA, passkeys и роли. Пригодится, когда в проект нужно встроить вход и сессии.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mrgoonie/claudekit-skills --skill better-auth -a claude-code
Открыть на GitHub

Что делает better-auth

Скилл описывает работу с Better Auth — фреймворк-агностичной библиотекой аутентификации для TypeScript. Агент получает инструкции по email/паролю с подтверждением, входу через Google, GitHub и Discord, двухфакторной аутентификации по TOTP и SMS, passkeys/WebAuthn, управлению сессиями и ролями (RBAC). Есть и ограничение частоты запросов.

Устроено так: в скилле лежит набор справочников по темам — email-пароли, OAuth-провайдеры, интеграция с базой, продвинутые функции. Плюс матрица выбора: что встроено, а что требует плагина. Например, 2FA, passkeys, magic link и организации подключаются плагинами, а после их добавления схему базы нужно генерировать заново.

Перед началом понадобятся BETTER_AUTH_SECRET и BETTER_AUTH_URL в .env. Схему и миграции делает CLI: npx @better-auth/cli generate, а npx @better-auth/cli migrate работает только с Kysely. Если база на другом драйвере, миграции придётся применять своими средствами — это повод проверить, чем управляется схема в вашем проекте.

Какие задачи решает

  • добавить вход по email и паролю с подтверждением адреса
  • подключить OAuth через GitHub или Google
  • включить двухфакторную аутентификацию по TOTP
  • раздать роли и права через RBAC
  • сгенерировать схему базы под аутентификацию

Примеры запросов агенту

  • Добавь в проект Better Auth: email с паролем и вход через GitHub
  • Настрой в Better Auth двухфакторную аутентификацию по TOTP
  • Сгенерируй схему базы для Better Auth и подключи плагин organization

Как установить better-auth

1Через Skills CLI (Vercel)

npx skills add mrgoonie/claudekit-skills --skill better-auth -a claude-code

2Вручную: положить файлы

~/.claude/skills/better-auth/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/better-auth/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о better-auth

Как установить better-auth в Claude?

Выполните npx skills add mrgoonie/claudekit-skills --skill better-auth -a claude-code. Скилл появится в ~/.claude/skills/better-auth/SKILL.md.

Что делает скилл better-auth?

Ведёт агента по подключению Better Auth: email/пароль, OAuth, 2FA, passkeys, сессии и роли. Внутри — справочники и матрица, что встроено, а что требует плагина.

Какие плагины нужны для 2FA и passkeys?

Двухфакторная аутентификация включается плагином twoFactor, passkeys/WebAuthn — плагином passkey. После добавления плагина схему базы генерируют заново.

Исходный текст

SKILL.md · MIT
---
name: better-auth
description: Implement authentication and authorization with Better Auth - a framework-agnostic TypeScript authentication framework. Features include email/password authentication with verification, OAuth providers (Google, GitHub, Discord, etc.), two-factor authentication (TOTP, SMS), passkeys/WebAuthn support, session management, role-based access control (RBAC), rate limiting, and database adapters. Use when adding authentication to applications, implementing OAuth flows, setting up 2FA/MFA, managing user sessions, configuring authorization rules, or building secure authentication systems for web applications.
license: MIT
version: 2.0.0
---

# Better Auth Skill

Better Auth is comprehensive, framework-agnostic authentication/authorization framework for TypeScript with built-in email/password, social OAuth, and powerful plugin ecosystem for advanced features.

## When to Use

- Implementing auth in TypeScript/JavaScript applications
- Adding email/password or social OAuth authentication
- Setting up 2FA, passkeys, magic links, advanced auth features
- Building multi-tenant apps with organization support
- Managing sessions and user lifecycle
- Working with any framework (Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, Express, etc.)

## Quick Start

### Installation

```bash
npm install better-auth
# or pnpm/yarn/bun add better-auth
```

### Environment Setup

Create `.env`:
```env
BETTER_AUTH_SECRET=<generated-secret-32-chars-min>
BETTER_AUTH_URL=http://localhost:3000
```

### Basic Server Setup

Create `auth.ts` (root, lib/, utils/, or under src/app/server/):

```ts
import { betterAuth } from "better-auth";

export const auth = betterAuth({
  database: {
    // See references/database-integration.md
  },
  emailAndPassword: {
    enabled: true,
    autoSignIn: true
  },
  socialProviders: {
    github: {
      clientId: process.env.GITHUB_CLIENT_ID!,
      clientSecret: process.env.GITHUB_CLIENT_SECRET!,
    }
  }
});
```

### Database Schema

```bash
npx @better-auth/cli generate  # Generate schema/migrations
npx @better-auth/cli migrate   # Apply migrations (Kysely only)
```

### Mount API Handler

**Next.js App Router:**
```ts
// app/api/auth/[...all]/route.ts
import { auth } from "@/lib/auth";
import { toNextJsHandler } from "better-auth/next-js";

export const { POST, GET } = toNextJsHandler(auth);
```

**Other frameworks:** See references/email-password-auth.md#framework-setup

### Client Setup

Create `auth-client.ts`:

```ts
import { createAuthClient } from "better-auth/client";

export const authClient = createAuthClient({
  baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL || "http://localhost:3000"
});
```

### Basic Usage

```ts
// Sign up
await authClient.signUp.email({
  email: "[email protected]",
  password: "secure123",
  name: "John Doe"
});

// Sign in
await authClient.signIn.email({
  email: "[email protected]",
  password: "secure123"
});

// OAuth
await authClient.signIn.social({ provider: "github" });

// Session
const { data: session } = authClient.useSession(); // React/Vue/Svelte
const { data: session } = await authClient.getSession(); // Vanilla JS
```

## Feature Selection Matrix

| Feature | Plugin Required | Use Case | Reference |
|---------|----------------|----------|-----------|
| Email/Password | No (built-in) | Basic auth | [email-password-auth.md](./references/email-password-auth.md) |
| OAuth (GitHub, Google, etc.) | No (built-in) | Social login | [oauth-providers.md](./references/oauth-providers.md) |
| Email Verification | No (built-in) | Verify email addresses | [email-password-auth.md](./references/email-password-auth.md#email-verification) |
| Password Reset | No (built-in) | Forgot password flow | [email-password-auth.md](./references/email-password-auth.md#password-reset) |
| Two-Factor Auth (2FA/TOTP) | Yes (`twoFactor`) | Enhanced security | [advanced-features.md](./references/advanced-features.md#two-factor-authentication) |
| Passkeys/WebAuthn | Yes (`passkey`) | Passwordless auth | [advanced-features.md](./references/advanced-features.md#passkeys-webauthn) |
| Magic Link | Yes (`magicLink`) | Email-based login | [advanced-features.md](./references/advanced-features.md#magic-link) |
| Username Auth | Yes (`username`) | Username login | [email-password-auth.md](./references/email-password-auth.md#username-authentication) |
| Organizations/Multi-tenant | Yes (`organization`) | Team/org features | [advanced-features.md](./references/advanced-features.md#organizations) |
| Rate Limiting | No (built-in) | Prevent abuse | [advanced-features.md](./references/advanced-features.md#rate-limiting) |
| Session Management | No (built-in) | User sessions | [advanced-features.md](./references/advanced-features.md#session-management) |

## Auth Method Selection Guide

**Choose Email/Password when:**
- Building standard web app with traditional auth
- Need full control over user credentials
- Targeting users who prefer email-based accounts

**Choose OAuth when:**
- Want quick signup with minimal friction
- Users already have social accounts
- Need access to social profile data

**Choose Passkeys when:**
- Want passwordless experience
- Targeting modern browsers/devices
- Security is top priority

**Choose Magic Link when:**
- Want passwordless without WebAuthn complexity
- Targeting email-first users
- Need temporary access links

**Combine Multiple Methods when:**
- Want flexibility for different user preferences
- Building enterprise apps with various auth requirements
- Need progressive enhancement (start simple, add more options)

## Core Architecture

Better Auth uses client-server architecture:
1. **Server** (`better-auth`): Handles auth logic, database ops, API routes
2. **Client** (`better-auth/client`): Provides hooks/methods for frontend
3. **Plugins**: Extend both server/client functionality

## Implementation Checklist

- [ ] Install `better-auth` package
- [ ] Set environment variables (SECRET, URL)
- [ ] Create auth server instance with database config
- [ ] Run schema migration (`npx @better-auth/cli generate`)
- [ ] Mount API handler in framework
- [ ] Create client instance
- [ ] Implement sign-up/sign-in UI
- [ ] Add session management to components
- [ ] Set up protected routes/middleware
- [ ] Add plugins as needed (regenerate schema after)
- [ ] Test complete auth flow
- [ ] Configure email sending (verification/reset)
- [ ] Enable rate limiting for production
- [ ] Set up error handling

## Reference Documentation

### Core Authentication
- [Email/Password Authentication](./references/email-password-auth.md) - Email/password setup, verification, password reset, username auth
- [OAuth Providers](./references/oauth-providers.md) - Social login setup, provider configuration, token management
- [Database Integration](./references/database-integration.md) - Database adapters, schema setup, migrations

### Advanced Features
- [Advanced Features](./references/advanced-features.md) - 2FA/MFA, passkeys, magic links, organizations, rate limiting, session management

## Scripts

- `scripts/better_auth_init.py` - Initialize Better Auth configuration with interactive setup

## Resources

- Docs: https://www.better-auth.com/docs
- GitHub: https://github.com/better-auth/better-auth
- Plugins: https://www.better-auth.com/docs/plugins
- Examples: https://www.better-auth.com/docs/examples

© mrgoonie · MIT · mrgoonie/claudekit-skills

Похожие скиллы

Всё по теме «Бэкенд и API» →

Сначала — better-auth от других авторов.

better-auth giuseppe-trisciuoglio Скилл с готовыми шаблонами Better Auth: подключение к NestJS, Drizzle ORM и PostgreSQL, вход через соцсети и плагины вроде 2FA и passkey. CX Codex +1 3 600установок better-auth-authentication bobmatnyc Скилл для TypeScript-приложений: помогает настроить вход по email и паролю, социальные провайдеры и проверку почты. CX Codex +1 389установок better-auth-core bobmatnyc Скилл для настройки Better Auth в TypeScript-приложениях: инстанс, серверные обработчики, клиент и сессии. Пригодится, когда нужно подключить аутентификацию без долгих поисков по докам. CX Codex +1 358установок safe-action-better-auth next-safe-action Скилл подключает Better Auth к next-safe-action: middleware сам достаёт сессию, режет неавторизованные запросы и отдаёт типизированный контекст. CX Codex +1 477установок better-auth-security-best-practices better-auth Настраивает защиту Better Auth: ограничивает частоту запросов, проверяет происхождение, шифрует токены и защищает пользовательские сессии. CX Codex +1 48 000установок create-auth better-auth Скилл проводит агента через планирование и настройку аутентификации в TypeScript/JavaScript-проекте на Better Auth: от сканирования кода до страниц входа. CX Codex +1 13 400установок nuxt-better-auth onmax Направляет настройку аутентификации Nuxt через @nuxtjs/better-auth: от сессий и маршрутов до серверных API и плагинов. CX Codex +1 2 000установок

Из того же набора20

web-testing Скилл для веб-тестирования: юнит, интеграция, E2E, нагрузка, безопасность, визуальные регрессии и доступность. Пригодится, когда нужно навести порядок в тестах проекта. CX Codex +1 442установок databases Скилл с единым справочником по MongoDB и PostgreSQL: схемы, запросы, индексы, миграции, бэкапы и администрирование. CX Codex +1 435установок docs-seeker Ищет актуальную техническую документацию через формат llms.txt, каталог context7.com и утилиту Repomix. Помогает загрузить точный контекст по библиотекам. CX Codex +1 403установок repomix Скилл собирает весь репозиторий в один файл, удобный для передачи в LLM. Пригодится, когда надо дать агенту контекст проекта или разобрать чужую библиотеку. CX Codex +1 402установок web-frameworks Скилл-группа для фуллстек-разработки: подсказывает агенту, как собирать приложения на Next.js, монорепозитории на Turborepo и подключать иконки RemixIcon. CX Codex +1 372установок mermaidjs-v11 Скилл учит агента писать диаграммы на синтаксисе Mermaid.js v11 и рендерить их в SVG, PNG или PDF. Пригодится, когда нужно нарисовать схему по описанию, а не руками. CX Codex +1 362установок skill-creator Помогает писать новые скиллы и переделывать существующие: структура файлов, метаданные, скрипты, разбивка на части. CX Codex +1 356установок payment-integration Скилл для интеграции платежей: SePay и VietQR, Polar, Stripe, Paddle, Creem.io. Пригодится, когда нужно провести оплату от чекаута до вебхука. CX Codex +1 349установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой