Supabase Login Apple pada Android
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Persyaratan
Bagian berjudul “Persyaratan”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
Judul Bagian “Langkah 1: Deploy Fungsi Edge Backend”Pertama, kita perlu mengdeploy Fungsi Edge Supabase yang akan menghandle panggilan balik OAuth Apple.
-
Navigasikan ke direktori proyek Supabase Anda
Jendela Terminal cd your-project/supabase -
Buat fungsi edge (jika belum ada)
Jendela Terminal supabase functions new apple-signin-callback -
Salin fungsi edge code
Implementasi fungsi edge lengkap tersedia di contoh aplikasi.
Salin file-file berikut 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 tanda tangan 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" -
Deploy fungsi
Jendela terminal supabase functions deploy apple-signin-callback -
Temukan 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 Apple”Sekarang 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 To:
- Buat ID Layanan
- Generate kunci pribadi (.p8 file)
- Dapatkan ID Tim dan ID Kunci
- Konfigurasi URL Pengembalian
-
Set URL Pengembalian di Portal Pengembang Apple
Ketika mengonfigurasi URL Pengembalian di Portal Pengembang Apple (langkah 6.9 dari panduan Apple), gunakan URL Fungsi Edge Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackPenting: Gunakan URL Fungsi Edge Supabase
Jangan gunakan URL redirect dari Petunjuk Pengaturan Login Apple Android. Panduan itu menggunakan URL server backend khusus. Anda harus menggunakan URL Fungsi Edge Supabase Anda. Diperlukan Match Sama Persis
-
Setelah menyelesaikan panduan pengaturan Apple, Anda seharusnya memiliki:
ID Tim Pengembang Apple
- : ID Tim Pengembang Apple Anda.ID TIM PENGEMBANG APPLE
- ID APL APPLE_KEY_ID: ID Kunci dari Portal Pengembang Apple
- APPLE_PRIVATE_KEY: File kunci pribadi .p8 Anda (perlu dikodekan base64)
- ANDROID_SERVICE_ID: ID Layanan Apple Anda (misal,
com.example.app.service) - BASE_REDIRECT_URL: URL Deep Link Anda (misal,
capgo-demo-app://path)
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
Salin ke clipboard base64 -i AuthKey_XXXXX.p8Salin seluruh hasilnya (string panjang tunggal).
-
Setel 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: Setel rahasia di Dashboard Supabase
Jika Anda lebih suka menggunakan dashboard:
- Pergi ke dashboard proyek Supabase Anda
- Navigasikan ke Fungsi Pintu Edge → Pengaturan → Rahasia
- Tambahkan variabel rahasia dengan nilai masing-masing
Langkah 4: Gunakan Bantuan Autentikasi
Judul Bagian “Langkah 4: Gunakan Bantuan Autentikasi”Sekarang Anda dapat menggunakan bantuan autentikasi di aplikasi Anda code.
Implementasi
Judul Bagian “Implementasi”Implementasi lengkap tersedia di contoh aplikasi’s supabaseAuthUtils.ts file.
Menggunakan Bantuan Autentikasi
Judul Bagian “Menggunakan Bantuan 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 Fungsi Bantuan
Judul Bagian “Perbarui Fungsi Bantuan”Ketika menggunakan authenticateWithAppleSupabase fungsi bantuan, Anda wajib mengupdate 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 yang lengkap untuk referensi.
Langkah 5: Uji Integrasi
Judul bagian “Langkah 5: Uji Integrasi”-
Buat dan jalankan aplikasi Android Anda
Jendela terminal npx cap sync androidnpx cap run android -
Tes alur autentikasi
- Sentuh tombol “Masuk dengan Apple”
- Anda seharusnya melihat halaman OAuth Apple di browser
- Setelah autentikasi, Anda seharusnya diarahkan kembali ke aplikasi Anda
- Periksa log konsol untuk kesalahan apa pun
-
Verifikasi alur
Alur lengkap seharusnya:
- Pengguna menekan tombol “Masuk dengan Apple”
- Aplikasi membuka browser dengan OAuth Apple
- Pengguna autentikasi dengan Apple
- Apple mengarahkan ke: __CAPGO_KEEP_0__
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 menggunakan token identitas
Pengaturan
Jika autentikasi gagal:URI Redirect tidak sesuai
- : Pastikan URL Kembali di Portal Pengembang Apple cocok denganrahasia
APPLE_REDIRECT_URITautan dalam tidak berfungsi - : Pastikan bahwa Tautan dalam tidak berfungsi
AndroidManifest.xmlfilter pencarian Anda sesuaiBASE_REDIRECT_URL - Rahasia hilang: Pastikan semua rahasia telah ditetapkan dengan benar menggunakan
supabase secrets list - Gagal menukar token: Periksa log fungsi tepi di Dashboard Supabase untuk pesan kesalahan rinci
- Aplikasi tidak menerima panggilan balik: Pastikan
onNewIntenttelah diterapkan dengan benar di MainActivity - Review contoh aplikasi __CAPGO_KEEP_0__ example app code Bagaimana Cara Kerjanya
__CAPGO_KEEP_0__
Bagaimana Cara KerjanyaPada Android, Sign-In Apple menggunakan alur redirect OAuth:
- Inisialisasi: Plugin ini diinisialisasi dengan ID Layanan Anda dan URL Redirect Backend
- Alur OAuth: Membuka browser/Tab Chrome Kustom dengan halaman OAuth Apple
- Panggilan Balik Backend: Apple mengarahkan ke fungsi Edge Supabase Anda dengan otorisasi code
- Tukar Token: Fungsi Edge mengganti code untuk token menggunakan endpoint token Apple
- Redirect Tautan dalam: Fungsi Edge mengarahkan kembali ke aplikasi Anda dengan token identitas
- Autentikasi Supabase: Aplikasi menerima token dan masuk ke Supabase
Alur ini diperlukan karena Apple tidak menyediakan dukungan native Android untuk Sign in with Apple.
Lanjutkan dari Autentikasi Apple Supabase pada Android
Judul bagian “Lanjutkan dari Autentikasi Apple Supabase pada Android”Jika Anda menggunakan Autentikasi Apple Supabase pada Android untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-social-login untuk kemampuan 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.