Supabase Login Apple di Android
Copy prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Prasyarat
Bagian berjudul “Prasyarat”Panduan ini akan membantu Anda mengintegrasikan Sign-In Apple dengan Supabase Authentication pada Android. Diperkirakan bahwa Anda telah menyelesaikan:
Langkah 1: Deploy Fungsi Edge Backend
Bagian berjudul “Langkah 1: Deploy Fungsi Edge Backend”Pertama, kami perlu mengdeploy Fungsi Edge Supabase yang akan menghandle panggilan balik Apple OAuth.
-
Navigasikan ke direktori proyek Supabase Anda
Jendela terminal cd your-project/supabase -
Buat fungsi edge (jika tidak ada)
Jendela terminal supabase functions new apple-signin-callback -
Salin fungsi edge code
Implementasi fungsi edge lengkap tersedia di contoh aplikasi.
Salin berikut file ke proyek Anda:
supabase/functions/apple-signin-callback/index.ts- Fungsi edge utama codesupabase/functions/apple-signin-callback/deno.json- Peta import untuk dependensi (termasukjoselibrary untuk signing JWT
-
Konfigurasi verifikasi JWT
Endpoint panggilan balik OAuth Apple haruslah publik (tidak memerlukan autentikasi) karena Apple akan mengarahkan ke sana. Perbarui file:
supabase/config.tomlSalin ke clipboard[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" -
Jendela terminal
Peta import untuk dependensi (termasuk library untuk signing JWT) supabase functions deploy apple-signin-callback -
Ambil URL fungsi Anda
Setelah di-deploy, Anda akan mendapatkan URL seperti:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackJika Anda 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 Portal Pengembang Apple
Judul Bagian: Langkah 2: Konfigurasi Portal Pengembang AppleSekarang kita perlu mengonfigurasi Portal Pengembang Apple dengan URL backend dan mendapatkan semua nilai yang diperlukan.
-
Ikuti Panduan Pengaturan Login Apple Android
Lengkapi Panduan Pengaturan Login Apple Android untuk:
- Buat ID Layanan
- Buat kunci pribadi (.p8 file)
- Dapatkan ID Tim dan ID Kunci
- Konfigurasi URL Pengembalian
-
Atur URL Pengembalian di Portal Pengembang Apple
Saat mengonfigurasi URL Pengembalian di Portal Pengembang Apple (langkah 6.9 dari panduan Apple), gunakan URL Fungsi Edge Supabase Anda:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackPerlu diingat: Gunakan URL Fungsi Edge Supabase
Jangan gunakan URL pengalihan dari Panduan Pengaturan Login Apple Android. Panduan tersebut menggunakan URL server backend kustom. Untuk integrasi Supabase, Anda harus gunakan URL Fungsi Edge Supabase Anda
-
Kumpulkan semua nilai yang diperlukan
Setelah menyelesaikan panduan pengaturan Apple, Anda seharusnya memiliki:
- ID TIM APPLE: ID Tim Pengembang Apple Anda
- ID KUNJUNGAN APPLE: ID Kunci dari Portal Pengembang Apple
- KUNJUNGAN PRIVAT APPLE: File kunci pribadi Anda (.p8) yang harus dikodekan base64
- ANDROID_SERVICE_ID: ID Layanan Apple Anda (misalnya
com.example.app.service) - BASE_REDIRECT_URL: URL tautan dalam yang Anda gunakan (misalnya
capgo-demo-app://path)
Langkah 3: Atur Rahasia Supabase
Judul bagian “Langkah 3: Atur Rahasia Supabase”Sekarang kita perlu mengonfigurasi variabel lingkungan (rahasia) untuk Fungsi Edge Supabase.
-
Enkripsi kunci pribadi Anda
Pertama, enkripsi kunci pribadi Apple (.p8 file) ke base64:
Jendela terminal base64 -i AuthKey_XXXXX.p8Salin seluruh output (ini adalah string panjang tunggal).
-
Atur rahasia 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 rahasia di Dashboard Supabase
Jika Anda lebih suka menggunakan dashboard:
- Buka dashboard proyek Supabase Anda
- Navigasikan ke Fungsi Edge → Pengaturan → Rahasia
- Tambahkan variabel rahasia masing-masing dengan nilai
Langkah 4: Gunakan Bantuan Autentikasi
Judul bagian “Langkah 4: Gunakan Bantuan Autentikasi”Sekarang Anda dapat menggunakan bantuan autentikasi di aplikasi Anda code.
Implementasi
Bagian berjudul “Implementasi”Implementasi lengkap tersedia di file aplikasi contoh. supabaseAuthUtils.ts Menggunakan Bantuan Autentikasi
Bagian berjudul “Menggunakan Bantuan Autentikasi”
Salin ke clipboardimport { 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);}Bagian berjudul “Perbarui Fungsi Bantuan”
Ketika menggunakanhelper authenticateWithAppleSupabase fungsi bantuan, Anda harus perbarui nilai-nilai berikut untuk sesuai dengan konfigurasi Anda:
-
Perbarui
redirectUrl- Atur ini ke URL Fungsi Edge Supabase Anda:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Perbarui
clientId- Atur ini ke ID Layanan Apple 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 complete implementation untuk referensi.
Langkah 5: Tes Integrasi
Bagian berjudul “Langkah 5: Tes Integrasi”-
Buat dan jalankan aplikasi Android Anda
Jendela terminal npx cap sync androidnpx cap run android -
Tes aliran autentikasi
- Sentuh tombol “Masuk dengan Apple”
- Anda harus melihat halaman OAuth Apple di browser
- Setelah otentikasi, Anda harus diarahkan kembali ke aplikasi Anda
- Periksa log konsol untuk kesalahan apa pun
-
Verifikasi aliran
Aliran lengkap seharusnya:
- Pengguna mengetuk “Masuk dengan Apple”
- Aplikasi membuka browser dengan OAuth Apple
- Pengguna otentikasi dengan Apple
- Apple mengarahkan ke:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Fungsi Edge mengganti code dengan token
- Fungsi Edge mengarahkan ke:
your-app://path?id_token=...&access_token=... - Aplikasi Android menerima tautan dalam dan memproses token identitas
- Aplikasi masuk ke Supabase dengan token identitas
Pengaturan
Bagian berjudul “Pengaturan”Jika autentikasi gagal:
- URI Redirect tidak sesuai: Periksa URL Kembali di Portal Pengembang Apple apakah sesuai dengan
APPLE_REDIRECT_URIRahasia - : Pastikan semua rahasia telah diset dengan benar menggunakanTautan dalam mendalam tidak berfungsi
AndroidManifest.xml: Periksa apakahBASE_REDIRECT_URL - filter tujuan sesuai denganRahasia hilang: Periksa semua rahasia telah diset dengan benar menggunakan
supabase secrets list - Tukar Token gagal: Periksa log fungsi tepi di Dashboard Supabase untuk pesan kesalahan rinci
- Aplikasi tidak menerima panggilan balik: Pastikan
onNewIntentAuth0 - telah diimplementasikan dengan benar di MainActivity Review contoh aplikasi code untuk referensi
Bagaimana Cara Kerjanya
Judul bagian “Bagaimana Cara Kerjanya”Pada Android, Sign-In Apple menggunakan alur redirect OAuth:
- Inisialisasi: Plugin ini diinisialisasi dengan ID Layanan Anda dan URL redirect backend
- OAuth Flow: Membuka browser/Tab Chrome Kustom Apple dengan halaman OAuth Apple
- Backend Callback: Apple mengarahkan ke fungsi Edge Supabase Anda dengan otorisasi code
- Token Exchange: Fungsi Edge mengganti code dengan token menggunakan endpoint token Apple
- Deep Link Redirect: Fungsi Edge mengarahkan kembali ke aplikasi Anda dengan token identitas
- Supabase Authentication: Aplikasi menerima token dan masuk ke Supabase
Aliran ini diperlukan karena Apple tidak menyediakan dukungan native Android untuk Sign in dengan Apple.