Supabase Apple Login pada Android
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Prasyarat
PrasyaratPetunjuk ini akan membantu Anda mengintegrasikan Sign-In Apple dengan Supabase Authentication pada Android. Diperkirakan bahwa Anda telah menyelesaikan:
- Supabase Apple Login - Pengaturan Umum Penting.
Bagian berjudul “Langkah 1: Deploy Fungsi Edge Backend”
Pertama, kami perlu mengdeploy Fungsi Edge Supabase yang akan menghandle panggilan balik OAuth Apple.Beralih ke direktori proyek Supabase Anda
-
Jendela terminal
__CAPGO_KEEP_0__ 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 tanda tangan JWT)
-
Konfigurasi Verifikasi JWT
Endpoint panggilan balik OAuth Apple haruslah publik (tidak memerlukan autentikasi) karena Apple akan mengarahkan ke sana. Perbarui
supabase/config.tomlfile:[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 -
Dapatkan URL fungsi Anda
Setelah pengembangan, Anda akan mendapatkan URL seperti:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackJika Anda tidak dapat menemukannya, Anda dapat melakukan hal berikut:
- Buka
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klik pada
apple-signin-callbackfungsi URL untuk menyalinnya.
- Buka
Langkah 2: Konfigurasi Portal Pengembang Apple
Bagian berjudul “Langkah 2: Konfigurasi Portal Pengembang Apple”Kita perlu mengonfigurasi Portal Pengembang Apple dengan URL backend dan mendapatkan semua nilai yang diperlukan.
-
Ikuti Panduan Pengaturan Login Apple Android
Selesai dengan Panduan Pengaturan Login Apple Android ke:
- Buat ID Layanan
- Buat kunci pribadi (.p8 file)
- Dapatkan ID Tim dan ID Kunci
- Mengonfigurasi URL Pengembalian
-
Set the Return URL di Portal Pengembang Apple
Ketika 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 Android Apple. Panduan tersebut menggunakan URL server backend khusus. Untuk integrasi Supabase, Anda harus
-
Kumpulkan semua nilai yang diperlukan
Setelah menyelesaikan panduan pengaturan Apple, Anda harus memiliki:
- ID TIM APPLE: ID Tim Pengembang Apple Anda
- : ID Kunci dari Portal Pengembang Apple: File kunci pribadi .p8 Anda (perlu dikodekan base64)
- ID JASA ANDROID__CAPGO_KEEP_0__
- __CAPGO_KEEP_0__: ID Layanan Apple Anda (misalnya,
com.example.app.service) - BASE_REDIRECT_URL: URL tautan dalam (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 Anda (.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:
- Bergi ke dashboard proyek Supabase Anda
- Navigasikan ke Fungsi Pintu Masuk → Pengaturan → Rahasia
- Tambahkan setiap variabel rahasia dengan nilai
Judul bagian “Langkah 4: Gunakan Bantuan Autentikasi”
Sekarang Anda dapat menggunakan bantuan autentikasi di aplikasi Anda __CAPGO_KEEP_0__.Now you can use the authentication helper in your app 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”
Saat menggunakanfungsi bantuan, Anda authenticateWithAppleSupabase harus __CAPGO_KEEP_0__ update the following values to match your konfigurasi:
-
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: Uji Integrasi
Judul bagian “Langkah 5: Uji Integrasi”-
Buat dan jalankan aplikasi Android Anda
Jendela terminal npx cap sync androidnpx cap run android -
Uji alur autentikasi
- Tekan tombol “Masuk dengan Apple”
- Anda harus melihat halaman OAuth Apple di browser
- Setelah autentikasi, 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 mengautentikasi dengan Apple
- Apple mengarahkan ke:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Fungsi Edge menukar 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 Perbaikan
Bagian berjudul “Pengaturan Masalah”Jika otentikasi gagal:
- URI Redirect tidak sesuai: Pastikan URL Kembali di Portal Pengembang Apple sesuai dengan
APPLE_REDIRECT_URI__CAPGO_KEEP_0__ - Tautan dalam mendalam tidak berfungsi: Periksa bahwa
AndroidManifest.xmlfilter tujuan sesuai denganBASE_REDIRECT_URL - Rahasia hilang: Pastikan semua rahasia telah diset dengan benar menggunakan
supabase secrets list - Pertukaran Token gagal: Periksa log fungsi pinggir di Dashboard Supabase untuk pesan kesalahan rinci
- Aplikasi tidak menerima callbackPastikan
onNewIntentdibuat dengan benar di MainActivity - Tinjau contoh aplikasi __CAPGO_KEEP_0__ example app code Bagaimana Cara Kerjanya
Bagian berjudul “Bagaimana Cara Kerjanya”
Pada Android, Sign-In Apple menggunakan alur redirect OAuth:Pengaturan Awal
- : Plugin ini diinisialisasi dengan ID Layanan Anda dan URL redirect backendAlur OAuth
- Alur OAuth FlowTerbuka browser/Tab Chrome khusus dengan halaman OAuth Apple
- Callback Backend: Apple mengarahkan ke fungsi Edge Supabase Anda dengan otorisasi code
- Tukar Token: Fungsi Edge mengganti code untuk token menggunakan endpoint token Apple
- Pindah Link dalam Kedalaman: 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 dengan Apple.
Teruskan dari Supabase Apple Login pada Android
Judul bagian “Teruskan dari Supabase Apple Login pada Android”Jika Anda menggunakan Supabase Apple Login 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.