Better Auth

Konfiguracja Better Auth dla aplikacji TypeScript: email/hasło, OAuth, 2FA, passkeys, adaptery DB

Autor: mrgoonie · mrgoonie/claudekit-skills

Działa po konfiguracji ★ 7.6/10

Better Auth — Konfiguracja Better Auth dla aplikacji TypeScript: email/hasło, OAuth, 2FA, passkeys, adaptery DB

Co robi ten skill

Prowadzi przez implementację Better Auth, niezależnej od frameworka biblioteki uwierzytelniania TypeScript, obejmującej email/hasło z weryfikacją i resetowaniem, dostawców społecznościowych OAuth, 2FA/TOTP, passkeys, magiczne linki, sesje oraz adaptery baz danych dla Drizzle, Prisma, Kysely i MongoDB. Uruchamia się podczas dodawania uwierzytelniania lub autoryzacji do aplikacji TypeScript lub JavaScript, podłączania logowania OAuth, konfigurowania uwierzytelniania wieloskładnikowego lub konfigurowania schematu bazy danych uwierzytelniania i chronionych tras. Zawiera cztery dokumenty referencyjne oraz skrypt inicjalizacyjny w Pythonie, który tworzy konfigurację uwierzytelniania i wartości .env.

Raport z testu

INSTALACJA: frontmatter parsowany (name + description + license + version 2.0.0); wszystkie 5 plików referencyjnych pobranych HTTP 200 (references/email-password-auth.md 8567B, oauth-providers.md 9293B, database-integration.md 10517B, advanced-features.md 10604B, scripts/better_auth_init.py 16394B). Przeszukano 521-liniowy skrypt Pythona: brak curl|sh, brak base64, brak wywołań sieciowych, brak tekstu iniekcji; tylko względna rozdzielczość Path(__file__) i `secrets` do generowania kluczy. TRIGGER 5/5 — POWINIEN zadziałać: "Dodaj Better Auth email/hasło + GitHub OAuth do mojej aplikacji Next.js 15" (tak), "Chcę logowania bezhasłowego passkey/WebAuthn dla naszej aplikacji SvelteKit TypeScript" (tak), "Skonfiguruj dwuskładnikowe uwierzytelnianie TOTP i kontrolę dostępu opartą na rolach dla naszego Node/TS SaaS" (tak); NIE POWINIEN: "Nasz reverse proxy nginx potrzebuje podstawowego uwierzytelniania HTTP na /admin" (nie — infrastruktura, nie uwierzytelnianie aplikacji), "Skonfiguruj poświadczenia klienta OAuth2, aby wywołać Stripe API z naszego backendu Pythona" (nie — uwierzytelnianie maszynowe wychodzące, zły język). WYNIK: zadaniem było "dodaj Better Auth do Next.js App Router z email/hasło + weryfikacja, GitHub OAuth, Postgres/Drizzle, chroniony /dashboard". Napisałem bazową wersję z pamięci bez otwierania żadnego dokumentu referencyjnego (uwaga: przeczytałem już treść SKILL.md, więc zanieczyszczenie ogranicza się do szybkiego startu najwyższego poziomu, a nie referencji, które niosą prawdziwy ładunek umiejętności). Uruchomienie umiejętności pokonało bazową wersję w czterech konkretnych punktach: poprawna sygnatura sendVerificationEmail({user,url,token}) plus sendOnSignUp/autoSignInAfterVerification (bazowa wersja zgadła), middleware przez auth.api.getSession({headers}) z matcherem zamiast mojego ręcznie napisanego sniffowania nazwy ciasteczka, account.accountLinking.trustedProviders, które bazowa wersja całkowicie pominęła, oraz flaga CLI --adapter drizzle. Ale potem zweryfikowałem referencje z rzeczywistym pakietem (npm pack better-auth@1.6.23 i @better-auth/drizzle-adapter, przeszukano dist): `emailAndPassword.sendResetPasswordToken` nie istnieje (tylko `sendResetPassword`), `password.requireUppercase` nie istnieje (rzeczywista opcja to top-level `minPasswordLength`), a mapa stringów drizzle `schema: { user: "users" }` ma zły kształt — to pole przyjmuje obiekty tabel drizzle, nazewnictwo w liczbie mnogiej to `usePlural: true`. Te trzy opcje cicho by nie działały, więc e-maile z resetowaniem hasła i polityka haseł cicho nigdy by się nie uruchomiły. DOKUMENTACJA: SKILL.md jest uczciwy co do struktury i nie przesadza; odjęto jeden punkt, ponieważ dokumenty referencyjne opisują opcje nieobecne w dostarczonej bibliotece, a umiejętność ma etykietę "version 2.0.0" bez wskazania, której wersji better-auth dotyczy.

Testowano: 2026-07-21 · Claude Code 2.x (agent harness)

Instalacja

git clone --depth 1 https://github.com/mrgoonie/claudekit-skills /tmp/claudekit-skills
mkdir -p ~/.claude/skills
cp -R /tmp/claudekit-skills/.claude/skills/better-auth ~/.claude/skills/better-auth
# project-local instead: cp -R /tmp/claudekit-skills/.claude/skills/better-auth .claude/skills/
# optional interactive scaffolder (needs python3):
# python3 ~/.claude/skills/better-auth/scripts/better_auth_init.py

Komendy i przykładowe prompty

  • /better-authKonfiguracja Better Auth dla aplikacji TypeScript: email/hasło, OAuth, 2FA, passkeys, adaptery DB

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • Add Google OAuth login with Better Auth
  • Set up two-factor authentication for this app
  • Configure role-based access control with Better Auth