Supabase Apple Login di Android
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Prerequisites
Bagian berjudul “Prasyarat”Panduan ini akan membantu Anda mengintegrasikan Apple Sign-In dengan Supabase Authentication di Android. Kami mengasumsikan Anda sudah menyelesaikan:
- halaman Supabase Apple Login - Setup Umum.
Langkah 1: Deploy Backend Edge Function
Bagian berjudul “Langkah 1: Deploy Backend Edge Function”Pertama, kita perlu deploy Supabase Edge Function yang akan menangani callback OAuth Apple.
-
Buka direktori proyek Supabase Anda
Jendela terminal cd your-project/supabase -
Buat edge function (jika belum ada)
Jendela terminal supabase functions new apple-signin-callback -
Salin edge function code
Implementasi lengkap edge function tersedia di aplikasi contoh.
Salin file berikut ke proyek Anda:
supabase/functions/apple-signin-callback/index.ts- Edge function utama codesupabase/functions/apple-signin-callback/deno.json- Import map untuk dependensi (termasukjoselibrary untuk penandatanganan JWT)
-
Konfigurasi verifikasi JWT
Endpoint callback OAuth Apple harus bersifat publik (tanpa autentikasi) karena Apple akan melakukan redirect ke endpoint tersebut. Perbarui
supabase/config.tomlfile Anda:[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
Deploy the function
Jendela terminal supabase functions deploy apple-signin-callback -
Dapatkan URL fungsi Anda
Setelah deployment, Anda akan mendapatkan URL seperti:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackJika tidak menemukannya, Anda dapat melakukan hal berikut:
- Buka
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klik pada
apple-signin-callbackURL fungsi untuk menyalinnya.
- Buka
Langkah 2: Konfigurasi Apple Developer Portal
Bagian berjudul “Langkah 2: Konfigurasi Apple Developer Portal”Sekarang kita perlu mengonfigurasi Apple Developer Portal dengan URL backend dan mendapatkan semua nilai yang diperlukan.
-
Ikuti Panduan Setup Apple Login untuk Android
Selesaikan panduan Apple Login Android Setup ke:
- Buat Service ID
- Buat private key (file .p8)
- Dapatkan Team ID dan Key ID Anda
- Konfigurasi Return URL
-
Atur Return URL di Apple Developer Portal
Saat mengonfigurasi Return URL di Apple Developer Portal (langkah 6.9 dari panduan Apple), gunakan URL Supabase Edge Function Anda:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackPenting: Gunakan URL Supabase Edge Function
JANGAN gunakan redirect URL dari panduan Apple Login Android Setup. Panduan tersebut menggunakan URL server backend kustom. Untuk integrasi Supabase, Anda harus gunakan URL Supabase Edge Function Anda sebagai gantinya.
-
Kumpulkan semua nilai yang diperlukan
Setelah menyelesaikan panduan setup Apple, Anda seharusnya memiliki:
- APPLE_TEAM_ID: Apple Developer Team ID Anda
- APPLE_KEY_ID: Key ID dari Apple Developer Portal
- APPLE_PRIVATE_KEY: File private key .p8 Anda (perlu di-encode base64)
- ANDROID_SERVICE_ID: Apple Service ID Anda (contoh:
com.example.app.service) - BASE_REDIRECT_URL: URL deep link Anda (mis.,
capgo-demo-app://path)
Langkah 3: Atur Supabase Secrets
Bagian berjudul “Langkah 3: Atur Secrets Supabase”Sekarang kita perlu mengatur variabel lingkungan (secrets) untuk Supabase Edge Function.
-
Enkode kunci privat Anda
Pertama, enkode kunci privat Apple Anda (file .p8) ke base64:
Jendela terminal base64 -i AuthKey_XXXXX.p8Salin seluruh output (ini adalah satu string panjang).
-
Atur secrets menggunakan Supabase CLI
Jendela terminal supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
Alternatif: Atur secrets di Supabase Dashboard
Jika Anda lebih suka menggunakan dashboard:
- Buka dashboard proyek Supabase Anda
- Buka Edge Functions → Pengaturan → Secrets
- Tambahkan setiap variabel secret beserta nilainya
Langkah 4: Gunakan Authentication Helper
Bagian berjudul “Langkah 4: Gunakan Authentication Helper”Sekarang Anda dapat menggunakan authentication helper di aplikasi Anda code.
Implementasi
Bagian berjudul “Implementasi”Implementasi lengkapnya tersedia di aplikasi contoh supabaseAuthUtils.ts Anda.
Menggunakan Authentication Helper
Bagian berjudul “Menggunakan Helper Autentikasi”import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}Perbarui Helper Function
Bagian berjudul “Update the Helper Function”Saat menggunakan authenticateWithAppleSupabase helper function, Anda harus perbarui nilai-nilai berikut agar sesuai dengan konfigurasi Anda:
-
Update
redirectUrl- Setel ini ke URL Supabase Edge Function Anda:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Update
clientId- Atur ini ke Apple Service ID Anda:await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
Lihat implementasi lengkap sebagai referensi.
Langkah 5: Tes Integrasi
Bagian berjudul “Langkah 5: Tes Integrasi”-
Build dan jalankan aplikasi Android Anda
Jendela terminal npx cap sync androidnpx cap run android -
Tes alur autentikasi
- Ketuk tombol “Sign in with Apple”
- Anda seharusnya melihat halaman Apple OAuth di browser
- Setelah autentikasi, Anda akan diarahkan kembali ke aplikasi Anda
- Cek log console untuk melihat apakah ada error
-
Verifikasi alurnya
Alur lengkapnya adalah:
- Pengguna mengetuk “Sign in with Apple”
- App membuka browser dengan Apple OAuth
- Pengguna melakukan autentikasi dengan Apple
- Apple mengalihkan ke:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge function menukar code dengan token
- Edge function mengalihkan ke:
your-app://path?id_token=...&access_token=... - App Android menerima deep link dan memproses identity token
- App login ke Supabase menggunakan identity token
Pemecahan Masalah
Bagian berjudul “Troubleshooting”Jika autentikasi gagal:
- Redirect URI tidak cocok: Pastikan Return URL di Apple Developer Portal sama persis dengan
APPLE_REDIRECT_URIsecret - Deep link tidak berfungsi: Periksa apakah
AndroidManifest.xmlintent filter sudah sesuai denganBASE_REDIRECT_URL - Secret tidak ditemukan: Pastikan semua secret sudah diatur dengan benar menggunakan
supabase secrets list - Token exchange gagal: Periksa log edge function di Supabase Dashboard untuk pesan error detail
- App tidak menerima callback: Pastikan
onNewIntentsudah diimplementasikan dengan benar di MainActivity - Tinjau aplikasi contoh code sebagai referensi
Cara Kerjanya
Bagian berjudul “Cara Kerja”Di Android, Apple Sign-In menggunakan alur redirect OAuth:
- Inisialisasi: Plugin diinisialisasi dengan Service ID dan URL redirect backend Anda
- Alur OAuth: Membuka browser/Chrome Custom Tab dengan halaman OAuth Apple
- Callback Backend: Apple mengarahkan ke Supabase Edge Function Anda dengan code otorisasi
- Pertukaran token: Edge function menukar code dengan token menggunakan endpoint token Apple
- Redirect deep link: Edge function mengarahkan kembali ke aplikasi Anda dengan identity token
- Autentikasi Supabase: Aplikasi menerima token dan melakukan sign in ke Supabase
Alur ini diperlukan karena Apple tidak menyediakan dukungan native Android untuk Sign in with Apple.
Lanjutkan dari Supabase Apple Login di Android
Bagian berjudul “Lanjutkan dari Supabase Apple Login di Android”Jika Anda menggunakan Supabase Apple Login di Android untuk merencanakan alur autentikasi dan akun, hubungkan dengan Menggunakan @capgo/capacitor-social-login untuk kapabilitas native di Menggunakan @capgo/capacitor-social-login, @capgo/capacitor-social-login untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric, dan Autentikasi dua faktor untuk detail implementasi di autentikasi dua faktor.