Documentation
กลับไปหมวดหมู่

Better Auth

เวลาอ่านโดยประมาณ: ~15 นาที

Better Auth

Better Auth เป็นเฟรมเวิร์กการยืนยันตัวตนแบบครบวงจรที่เขียนด้วย TypeScript ซึ่งมอบโซลูชันที่ยืดหยุ่นและปลอดภัยด้านประเภทข้อมูลสำหรับการจัดการการยืนยันตัวตนผู้ใช้ในแอปพลิเคชันของคุณ รองรับผู้ให้บริการการยืนยันตัวตนหลายราย การจัดการเซสชัน และทำงานร่วมกับเฟรมเวิร์กสมัยใหม่ได้อย่างลงตัว

ทำไมเราถึงเลือก Better Auth

"พอไม่ใช้ Supabase แล้ว Auth กลายเป็นโจทย์ทันที แล้วเราก็เจอ better-auth"

การตัดสินใจ

พอเราตัดสินใจไม่ใช้ Supabase (เพื่อหลีกเลี่ยงค่า subscription ตอนเริ่มต้น) การยืนยันตัวตนกลายเป็นโจทย์ทันที แล้วเราก็เจอ better-auth

สิ่งที่ทำให้ตัดสินใจง่ายมาก:

  • มี better-auth-ui พร้อมใช้
  • UI เป็น style shadcn
  • โค้ดเริ่มต้นสั้นมาก
  • ได้ auth ใช้จริงแบบไม่ต้องเสียเวลานั่ง setup หลายวัน

สำหรับเรา มันหมายถึง:

"จบงาน auth แบบไม่ต้องคิดมาก"

ทำไมไม่ใช้ Supabase Auth?

ด้านBetter AuthSupabase
ค่าใช้จ่ายฟรี (self-hosted)ต้องจ่าย subscription
PostgreSQLใช้กับ PG ไหนก็ได้ผูกกับ Supabase
Customizationควบคุมได้เต็มที่ถูกจำกัดโดย platform
Migrationย้ายง่ายVendor lock-in

ถ้าวันหนึ่งต้อง switch ไป Supabase เราก็แทบไม่ต้องเปลี่ยน mindset เลย แค่ตอนนี้ยังไม่อยากจ่าย subscription แพงๆ

ข้อดี-ข้อเสีย

ข้อดีข้อเสีย
ฟรีและ self-hostedFramework ใหม่กว่า
UI สวย (shadcn style)Community เล็กกว่า
Setup code สั้นมากDocumentation น้อยกว่า
TypeScript support เต็มที่บาง features ยังพัฒนาอยู่
ใช้กับ PostgreSQL ไหนก็ได้ต้องจัดการ database เอง
Auth providers หลายตัวต้อง setup email เอง

คุณสมบัติหลัก

  • Type-Safe: รองรับ TypeScript เต็มรูปแบบพร้อมประเภทข้อมูลที่สร้างขึ้นโดยอัตโนมัติ
  • Multiple Providers: รองรับ OAuth (Google, GitHub ฯลฯ), อีเมล/รหัสผ่าน และอื่นๆ ในตัว
  • Session Management: การจัดการเซสชันที่ปลอดภัยด้วยฐานข้อมูล
  • Framework Agnostic: ทำงานกับ Next.js, Elysia, Express และเฟรมเวิร์กอื่นๆ
  • Dual Mode: รองรับทั้งเว็บ (cookies) และมือถือ/เดสก์ท็อป (bearer tokens)

การตั้งค่าพื้นฐาน

การกำหนดค่าเซิร์ฟเวอร์

กำหนดค่า Better Auth บนเซิร์ฟเวอร์ด้วย Drizzle ORM:

การกำหนดค่าไคลเอนต์

สร้าง auth client ที่ปลอดภัยด้านประเภทข้อมูลสำหรับ frontend ของคุณ:

ขั้นตอนการยืนยันตัวตน

ลงทะเบียนด้วยอีเมลและรหัสผ่าน

ลงชื่อเข้าใช้ด้วย Google OAuth

การจัดการเซสชัน

ตัวอย่างเชิงโต้ตอบ

ลองนำการยืนยันตัวตนด้วย Better Auth ไปใช้:

สรุป

Better Auth นำเสนอ:

  • การยืนยันตัวตนที่ปลอดภัยด้านประเภทข้อมูลด้วยการรองรับ TypeScript เต็มรูปแบบ
  • ผู้ให้บริการการยืนยันตัวตนหลายราย (OAuth, อีเมล/รหัสผ่าน)
  • การจัดการเซสชันที่ยืดหยุ่น
  • การรองรับข้ามแพลตฟอร์ม (เว็บ, มือถือ, เดสก์ท็อป)
  • การผนวกรวมง่ายกับเฟรมเวิร์กสมัยใหม่

แหล่งข้อมูลเพิ่มเติม

เอกสารอย่างเป็นทางการ

แนะนำสำหรับการเรียนรู้เพิ่มเติม