TurboJet
Autentikasi

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 baru

Client 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?

packages/auth/src/social-providers.ts
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.

  1. Buat app di Facebook developer console dan salin client ID serta secret.
  2. Tambahkan env vars (dan hubungkan lewat @repo/env seperti GitHub/Apple).
  3. Daftarkan provider pada instance Better Auth:
packages/auth/src/index.ts
socialProviders.facebook = {
	clientId: env.FACEBOOK_CLIENT_ID,
	clientSecret: env.FACEBOOK_CLIENT_SECRET,
};
  1. 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.

Terkait

Di halaman ini