TurboJet
Autentikasi

Gambaran umum

Better Auth — tautan ajaib, OTP email, Google, GitHub, dan Apple.

TurboJet menyertakan stack autentikasi lengkap yang didukung Better Auth. Data pengguna ada di PostgreSQL Anda lewat adapter Prisma — kontrol penuh tanpa Auth0 atau Clerk.

Konfigurasi ada di packages/auth/src/index.ts:

  • Adapter Prisma ke PostgreSQL
  • Field user tambahan: hasOnboarded, role, isBanned, mobile
  • trustedOrigins / allowedDevOrigins: URL SaaS + marketing (+ app), plus https://appleid.apple.com untuk Sign in with Apple

Host ini vs kit penuh

Checkout ini hanya memuat marketing dan docs. UI login/signup dan mount /api/auth ada di app SaaS pada monorepo TurboJet penuh. Arahkan BETTER_AUTH_URL, NEXT_PUBLIC_SAAS_URL, dan NEXT_PUBLIC_APP_URL ke origin yang memasang Better Auth. Lihat Environment dan Deployment.

Metode masuk

Pada UI auth SaaS (kit penuh), layout-nya:

  1. Baris sosial: Apple / Google / GitHub (tombol hanya muncul jika provider dikonfigurasi)
  2. Tab: Tautan ajaib | OTP

Password, passkey, dan guest tidak disertakan.

Tautan ajaib

Masuk mengirim email Resend (MagicLinkSignIn — lihat Email). Setelah tautan diklik, Better Auth mengalihkan ke callback URL di origin SaaS (biasanya /dashboard).

Batas laju /magic-link/*: 3 permintaan per jam.

OTP email

Memakai plugin Better Auth emailOTP:

  1. Kirim kode 6 digit (type: "sign-in")
  2. Pengguna memasukkan kode
  3. Selesaikan masuk dengan signIn.emailOtp

Email OTP memakai EmailOtpSignIn (Email). Kode kedaluwarsa 5 menit (5 percobaan). Batas laju /email-otp/*: 5 permintaan per jam.

Panduan

Pertanyaan yang sering diajukan

Library autentikasi apa yang dipakai TurboJet?

Better Auth. Sesi dan pengguna disimpan di database Anda lewat Prisma.

Bisakah memakai Google, GitHub, atau Apple?

Ya. Google wajib; GitHub dan Apple opsional lewat variabel lingkungan. Lihat OAuth.

Ya. Magic link dan OTP email adalah kelas utama. Login berbasis password tidak disertakan di kit ini.

Bagaimana melindungi route API?

Pakai middleware Hono (requireAuth, requireAdmin) — lihat Melindungi endpoint API. Tidak ada lapisan Permix di kit ini.

Di halaman ini