OAuth
Google, GitHub, Apple, dan cara menambah provider sosial lain.
Login sosial dikonfigurasi di packages/auth/src/index.ts. Provider yang aktif didaftarkan oleh getEnabledSocialProviders() di packages/auth/src/social-providers.ts.
URI redirect memakai origin SaaS yang memasang /api/auth:
{SAAS_URL}/api/auth/callback/{provider}
Google (wajib)
Setel di .env root:
GOOGLE_CLIENT_ID=…
GOOGLE_CLIENT_SECRET=…Redirect URI: {SAAS_URL}/api/auth/callback/google.
GitHub (opsional)
GITHUB_CLIENT_ID=…
GITHUB_CLIENT_SECRET=…Sertakan scope user:email / izin baca email. Redirect URI: {SAAS_URL}/api/auth/callback/github.
Jika kosong, isGithubOAuthConfigured() bernilai false dan tombol GitHub disembunyikan di UI SaaS.
Apple (opsional)
APPLE_CLIENT_ID=…
APPLE_TEAM_ID=…
APPLE_KEY_ID=…
APPLE_PRIVATE_KEY=… # isi .p8; pakai \n untuk baris baruClient secret JWT dibuat saat runtime dengan jose (generateAppleClientSecret).
Apple tidak mendukung return URL http://localhost — pakai HTTPS (tunnel) saat development. Redirect URI: {SAAS_URL}/api/auth/callback/apple.
Jika kosong, tombol Apple disembunyikan.
trustedOrigins / allowedDevOrigins sudah menyertakan https://appleid.apple.com.
Provider mana yang aktif?
export function getEnabledSocialProviders(): SocialProviderId[] {
const providers: SocialProviderId[] = ["google"];
if (isGithubOAuthConfigured()) providers.push("github");
if (isAppleOAuthConfigured()) providers.push("apple");
return providers;
}Menambah provider lain
Contoh: Facebook.
- Buat app di Facebook developer console dan salin client ID serta secret.
- Tambahkan env vars (dan hubungkan lewat
@repo/envseperti GitHub/Apple). - Daftarkan provider pada instance Better Auth:
socialProviders.facebook = {
clientId: env.FACEBOOK_CLIENT_ID,
clientSecret: env.FACEBOOK_CLIENT_SECRET,
};- Pada UI auth SaaS di monorepo TurboJet penuh, tambahkan provider ke map OAuth (ikon + label) agar halaman login menampilkan tombol.
Pelajari lebih lanjut di dokumentasi Facebook Better Auth.