better-auth · mrgoonie — скилл для Claude Code: аутентификация в TypeScript
Скилл проводит агента по подключению Better Auth: email-пароли, OAuth, 2FA, passkeys и роли. Пригодится, когда в проект нужно встроить вход и сессии.
npx skills add mrgoonie/claudekit-skills --skill better-auth -a claude-codeЧто делает 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-code2Вручную: положить файлы
~/.claude/skills/better-auth/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/better-auth/
1Через Skills CLI (Vercel)
npx skills add mrgoonie/claudekit-skills --skill better-auth -a codex2Вручную: положить файлы
.agents/skills/better-auth/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add mrgoonie/claudekit-skills --skill better-auth -a cursor2Вручную: положить файлы
.cursor/skills/better-auth/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install mrgoonie/claudekit-skills better-auth2Вручную: положить файлы
.github/skills/better-auth/SKILL.md1Через Skills CLI (Vercel)
npx skills add mrgoonie/claudekit-skills --skill better-auth -a gemini-cli2Командой платформы
gemini skills install https://github.com/mrgoonie/claudekit-skills --path .claude/skills/better-authВручную: положить файлы
.devin/skills/better-auth/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add mrgoonie/claudekit-skills --skill better-auth -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в 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 от других авторов.