Kỹ năng better-auth
Framework xác thực (authentication) và phân quyền (authorization) độc lập với framework dành cho TypeScript. Hoạt động với mọi framework - Next.js, Nuxt, SvelteKit, Remix, Astro, Hono, Express.
Khi nào nên sử dụng
Sử dụng better-auth khi bạn cần:
- Xác thực bằng Email/mật khẩu
- OAuth mạng xã hội (GitHub, Google, v.v.)
- Xác thực hai yếu tố (2FA)
- Passkeys (WebAuthn)
- Magic links (Đăng nhập không mật khẩu qua email)
- Đa người dùng (Multi-tenancy) / Tổ chức (Organizations)
- Sự linh hoạt giữa các framework
Bắt đầu nhanh
Cách gọi kỹ năng
"Sử dụng better-auth để thêm xác thực vào ứng dụng Next.js của tôi với:
- Đăng ký bằng Email/mật khẩu
- GitHub OAuth
- PostgreSQL với Drizzle"
Kết quả nhận được
Kỹ năng này sẽ giúp bạn:
- Cài đặt và cấu hình better-auth
- Thiết lập schema cơ sở dữ liệu
- Tạo instance server auth
- Gắn kết các route API
- Tạo instance client
- Triển khai giao diện Đăng ký/Đăng nhập
- Thêm quản lý phiên làm việc (session)
- Bảo vệ các route
Các trường hợp sử dụng phổ biến
Xác thực Email/Mật khẩu cơ bản
"Sử dụng better-auth để triển khai xác thực email/mật khẩu với:
- Tự động đăng nhập sau khi đăng ký
- Xác minh email
- Luồng khôi phục mật khẩu"
OAuth mạng xã hội
"Sử dụng better-auth để thêm GitHub và Google OAuth vào ứng dụng của tôi"
Xác thực hai yếu tố
"Sử dụng better-auth để thêm 2FA với mã TOTP và các thiết bị tin cậy"
Ứng dụng đa tổ chức (Multi-Tenant)
"Sử dụng better-auth để xây dựng ứng dụng đa tổ chức với:
- Các tổ chức (Organizations)
- Mời thành viên nhóm
- Phân quyền dựa trên vai trò (RBAC)"
Các tính năng chính
Phương thức xác thực
- Email/Mật khẩu - Đăng ký/đăng nhập truyền thống
- OAuth mạng xã hội - GitHub, Google, Apple, Discord, Facebook, v.v.
- Magic Links - Xác thực email không cần mật khẩu
- Passkeys - Xác thực sinh trắc học WebAuthn
- 2FA/TOTP - Xác thực hai yếu tố
- Email OTP - Mã mật khẩu một lần qua email
Hỗ trợ Framework
- Next.js (App Router & Pages Router)
- Nuxt
- SvelteKit
- Remix
- Astro
- Hono
- Express
- Mọi framework Node.js
Hỗ trợ Cơ sở dữ liệu
- PostgreSQL
- MySQL
- SQLite
- MongoDB
Adapter ORM
- Drizzle
- Prisma
- Kysely
- MongoDB native
Ví dụ triển khai
Next.js App Router
"Sử dụng better-auth để thiết lập xác thực cho Next.js 14 App Router với:
- Email/mật khẩu
- GitHub OAuth
- PostgreSQL + Drizzle
- Middleware bảo vệ route
- Server actions cho xác thực"
SvelteKit
"Sử dụng better-auth để triển khai xác thực trong SvelteKit với:
- Xác thực Magic link
- Quản lý phiên làm việc
- Bảo vệ các route"
Đa Framework
"Sử dụng better-auth để tạo hệ thống xác thực hoạt động với cả:
- Frontend Next.js
- Backend API Hono
- Cơ sở dữ liệu PostgreSQL dùng chung"
Tính năng nâng cao
Quản lý phiên làm việc (Session)
"Sử dụng better-auth để triển khai:
- Xác thực phiên làm việc phía server
- Hooks phiên làm việc phía client
- Tùy chỉnh thời gian hết hạn phiên
- Tính năng 'Ghi nhớ tôi' (Remember me)"
Giới hạn tốc độ (Rate Limiting)
"Sử dụng better-auth để thêm giới hạn tốc độ nhằm ngăn chặn:
- Tấn công vét cạn (Brute force)
- Spam đăng ký
- Lạm dụng API"
Xác minh Email
"Sử dụng better-auth để yêu cầu xác minh email:
- Gửi email xác minh
- Xử lý mã xác minh (tokens)
- Chặn người dùng chưa xác minh"
Phương pháp hay nhất
Biến môi trường
Luôn sử dụng biến môi trường cho:
BETTER_AUTH_SECRET- Khóa bí mật (tối thiểu 32 ký tự)BETTER_AUTH_URL- URL của ứng dụng- Client ID và Secret của OAuth
Bảo mật
Kỹ năng này đảm bảo:
- HTTPS trong môi trường sản xuất
- Cấu hình cookie an toàn
- Cấu hình CORS
- Yêu cầu về độ mạnh mật khẩu
- Bảo mật phiên làm việc
Di cư cơ sở dữ liệu (Database Migrations)
Sau khi thêm các plugin:
npx @better-auth/cli generate
npx @better-auth/cli migrate
Plugins
Các plugin có sẵn
- twoFactor - TOTP 2FA
- username - Xác thực bằng tên người dùng
- magicLink - Email không mật khẩu
- passkey - Sinh trắc học WebAuthn
- organization - Đa người dùng/tổ chức
- emailOTP - Mật khẩu một lần
- anonymous - Người dùng khách
Thêm Plugin
"Sử dụng better-auth để thêm các plugin này:
- Xác thực hai yếu tố
- Hỗ trợ tổ chức (Organization)
- Đăng nhập bằng Magic link"
Xử lý sự cố
Các vấn đề thường gặp
“Unable to find auth instance”
- Kiểm tra vị trí file auth.ts (gốc, lib/, utils/)
- Xác minh tên xuất (export name)
Lỗi kết nối cơ sở dữ liệu
- Xác minh thông tin đăng nhập
- Kiểm tra cơ sở dữ liệu đang chạy
- Đảm bảo adapter chính xác
Lỗi CORS
- Cấu hình corsOptions
- Khớp URL client/server
Tài nguyên
Các ví dụ nhanh
Thiết lập tối giản:
"Sử dụng better-auth để xác thực email/mật khẩu cơ bản với SQLite"
Thiết lập môi trường sản xuất:
"Sử dụng better-auth cho môi trường sản xuất với:
- GitHub + Google OAuth
- Xác minh email
- Hỗ trợ 2FA
- PostgreSQL
- Giới hạn tốc độ
- Xử lý lỗi đúng cách"
Thiết lập doanh nghiệp:
"Sử dụng better-auth cho ứng dụng doanh nghiệp với:
- Đa tổ chức (Multi-tenancy)
- Tích hợp SSO
- Phân quyền dựa trên vai trò (RBAC)
- Nhật ký kiểm tra (Audit logging)
- Quản lý phiên làm việc tùy chỉnh"
Bước tiếp theo
Tóm lại: better-auth cung cấp giải pháp xác thực sẵn sàng cho môi trường sản xuất, hoạt động với mọi framework TypeScript. Chỉ cần gọi kỹ năng và mô tả các yêu cầu xác thực của bạn.