Supabase Apple Login 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 Anda telah menyelesaikan:
Langkah 1: Deploy Backend Edge Function
Judul Bagian: Langkah 1: Deploy Backend Edge FunctionPertama, kami perlu mengdeploy Supabase Edge Function yang akan menghandle callback 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 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 penandatangan JWT)
-
Konfigurasi verifikasi JWT
Endpoint panggil 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" -
Tunggu hingga proses pengunduhan selesai
Jendela terminal supabase functions deploy apple-signin-callback -
Dapatkan URL fungsi Anda
Setelah proses pengunduhan selesai, 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 alamat URL untuk menyalinnya.
apple-signin-callbackalamat URL fungsi untuk menyalinnya.
- Buka
Langkah 2: Mengonfigurasi Portal Pengembang Apple
Bagian berjudul “Langkah 2: Mengonfigurasi Portal Pengembang Apple”Sekarang kita perlu mengonfigurasi Portal Pengembang Apple dengan alamat URL backend dan mendapatkan semua nilai yang diperlukan.
-
Ikuti Panduan Pengaturan Login Apple Android
Lengkapi __CAPGO_KEEP_0__ Lengkapi Panduan Pengaturan Login Apple Android ke:
- Buat ID Layanan
- Buat kunci pribadi (.p8 file)
- Dapatkan ID Tim dan ID Kunci
- Konfigurasi URL Pengembalian
-
Atur 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-callbackPerlu diingat: Gunakan URL Fungsi Edge Supabase
Jangan gunakan URL redirect dari Panduan Pengaturan Android Apple Login. Panduan tersebut menggunakan URL server backend kustom. Untuk integrasi Supabase, Anda harus gunakan URL Fungsi Edge Supabase Anda sendiri.
-
Kumpulkan semua nilai yang diperlukan
Setelah menyelesaikan panduan pengaturan Apple, Anda harus memiliki:
- __CAPGO_KEEP_0__: ID Tim Pengembang Apple Anda
- : ID Kunci dari Portal Pengembang Apple: File kunci pribadi .p8 Anda (perlu dikodekan base64)
- : ID Layanan Apple Anda (misalnya,: URL Redirect yang dalam (misalnya,
- URL Tautan dalam__CAPGO_KEEP_1__
com.example.app.service) - __CAPGO_KEEP_2____CAPGO_KEEP_3__
capgo-demo-app://path)
maka tautan dalam Anda akan menjadi
Langkah 3: Atur Rahasia SupabaseJudul bagian “Langkah 3: Atur Rahasia Supabase”
-
Sekarang kita perlu mengonfigurasi variabel lingkungan (rahasia) untuk Fungsi Edge Supabase.
Pertama, enkode kunci pribadi Apple Anda (.p8 file) ke base64:
Jendela Terminal base64 -i AuthKey_XXXXX.p8Salin seluruh output (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:
- Arahkan ke dashboard project 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 dalam 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 harus 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; -
Update
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 sebagai referensi.
Langkah 5: Tes Integrasi
Bagian berjudul “Langkah 5: Uji Integrasi”-
Bangun dan jalankan aplikasi Android Anda
Jendela terminal npx cap sync androidnpx cap run android -
Uji alur autentikasi
- Sentuh tombol “Masuk dengan Apple”
- Anda harus melihat halaman OAuth Apple di browser
- Setelah autentikasi, Anda harus diarahkan kembali ke aplikasi Anda
- Cek log konsol untuk kesalahan apa pun
-
Verifikasi alur
Alur lengkap harus seperti ini:
- Pengguna mengetuk tombol “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 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
Jika autentikasi gagal:URI Redirect tidak sesuai
- : Periksa URL Kembali di Portal Pengembang Apple cocok dengan persis dengan : Periksa URL Kembali di Portal Pengembang Apple cocok dengan persis dengan
APPLE_REDIRECT_URI__CAPGO_KEEP_0__ - Tautan dalam tidak berfungsi: Periksa bahwa
AndroidManifest.xmlfilter intent sesuai denganBASE_REDIRECT_URL - Kunci rahasia hilang: Pastikan semua kunci rahasia telah diset dengan benar menggunakan
supabase secrets list - Pertukaran token gagal: Periksa log fungsi tepi di Dashboard Supabase untuk pesan kesalahan rinci
- Aplikasi tidak menerima panggilan balik: Pastikan
onNewIntenttelah diimplementasikan dengan benar di MainActivity - Ulangi ulasan contoh aplikasi code untuk referensi
Bagaimana Cara Kerjanya
Bagian berjudul “Bagaimana Cara Kerjanya”Pada Android, Sign-In Apple menggunakan alur redirect OAuth:
- Inisialisasi: Plugin ini diinisialisasi dengan ID Layanan Anda dan URL panggilan balik 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
- Pertukaran Token: The edge function mengganti code dengan token menggunakan endpoint token Apple
- Deep Link Redirect: The edge function 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.
Teruskan dari Supabase Apple Login on Android
Judul bagian “Teruskan dari Supabase Apple Login on Android”Jika Anda menggunakan Supabase Apple Login on Android untuk merencanakan autentikasi dan aliran akun, hubungkannya dengan Menggunakan @capgo/capacitor-social-login untuk kemampuan asli di @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.