跳到主要内容
知仓学习社ZHICANG

better-auth

Implement authentication and authorization with Better Auth - a framework-agnostic TypeScript authentication framework. Features include email/passw…

读凭据读文件严重 40 · 高危 8mrgoonie/claudekit-skills

它会碰到什么

扫了多少8 个文本文件,77 KB
它会碰到什么读凭据读文件
命中总数50 处
命中统计严重 40 · 高 8 · 中 1 · 低 0
逐条看命中(30 条严重或高危)
  • 严重 references/oauth-providers.md:63cred-paths
    3. Add credentials to `.env`:
  • 严重 references/oauth-providers.md:76cred-paths
    5. Add credentials to `.env`:
  • 严重 scripts/better_auth_init.py:7cred-paths
  • 严重 scripts/better_auth_init.py:8cred-paths
    .env loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:8cred-paths
    .env loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:8cred-paths
    .env loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:66cred-paths
    Load environment variables from .env files in order.
  • 严重 scripts/better_auth_init.py:68cred-paths
    Loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:68cred-paths
    Loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:68cred-paths
    Loading order: process.env > skill/.env > skills/.env > .claude/.env
  • 严重 scripts/better_auth_init.py:78cred-paths
    self.project_root / ".claude" / ".env",
  • 严重 scripts/better_auth_init.py:79cred-paths
    self.project_root / ".claude" / "skills" / ".env",
  • 严重 scripts/better_auth_init.py:80cred-paths
    skill_dir / ".env",
  • 严重 scripts/better_auth_init.py:96cred-paths
    Parse .env file into dictionary.
  • 严重 scripts/better_auth_init.py:99cred-paths
    path: Path to .env file.
  • 严重 scripts/better_auth_init.py:376cred-paths
    Generate .env file content.
  • 严重 scripts/better_auth_init.py:383cred-paths
    Generated .env file content.
  • 严重 scripts/better_auth_init.py:441cred-paths
    print("\n--- .env ---")
  • 严重 scripts/better_auth_init.py:457cred-paths
    env_content: .env content.
  • 严重 scripts/better_auth_init.py:484cred-paths
    # Save .env
  • 严重 scripts/better_auth_init.py:485cred-paths
    env_path = self.project_root / ".env"
  • 严重 scripts/better_auth_init.py:487cred-paths
    backup = self.project_root / ".env.backup"
  • 严重 scripts/tests/test_better_auth_init.py:71cred-paths
    """Test parsing .env file."""
  • 严重 scripts/tests/test_better_auth_init.py:80cred-paths
    env_file = tmp_path / ".env"
  • 严重 scripts/tests/test_better_auth_init.py:92cred-paths
    """Test parsing missing .env file."""
  • 严重 scripts/tests/test_better_auth_init.py:98cred-paths
    # Create .env files
  • 严重 scripts/tests/test_better_auth_init.py:99cred-paths
    claude_env = mock_project_root / ".claude" / ".env"
  • 严重 scripts/tests/test_better_auth_init.py:103cred-paths
    skills_env = mock_project_root / ".claude" / "skills" / ".env"
  • 严重 scripts/tests/test_better_auth_init.py:257cred-paths
    """Test generating basic .env file."""
  • 严重 scripts/tests/test_better_auth_init.py:268cred-paths
    """Test generating .env with database URL."""

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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

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

Environment Setup

Create .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/):

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

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

Mount API Handler

Next.js App Router:

// 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:

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

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

Basic Usage

// Sign up
await authClient.signUp.email({
  email: "user@example.com",
  password: "secure123",
  name: "John Doe"
});

// Sign in
await authClient.signIn.email({
  email: "user@example.com",
  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

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 2,216
本站分层T1
该仓技能数45
原文件路径.claude/skills/better-auth/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 45 个技能