Login Apple Supabase di Android
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Persyaratan
Bab berjudul “Persyaratan”Panduan ini akan membantu Anda mengintegrasikan Sign-In Apple dengan Autentikasi Supabase pada Android. Diperkirakan bahwa Anda telah menyelesaikan:
Langkah 1: Deploy Fungsi Edge Backend
Judul Bagian: Langkah 1: Deploy Fungsi Edge BackendPertama-tama, 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 -
Create the edge function (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 modul untuk dependensi (termasuk)joselibrary untuk penandatanganan JWT)
-
Konfigurasi Verifikasi JWT
Endpoint Apple OAuth harus 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" -
Tingkatkan Fungsi
Jendela terminal supabase functions deploy apple-signin-callback -
Dapatkan URL fungsi Anda
Setelah penginstalan, Anda akan mendapatkan URL seperti:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSetelah pengunduhan, Anda akan mendapatkan URL seperti:
- Open
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klik pada
apple-signin-callbackfungsi URL untuk menyalinnya.
- Open
Langkah 2: Mengonfigurasi Portal Pengembang Apple
Bagian berjudul "Langkah 2: Mengonfigurasi 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
Selesaikan Panduan Pengaturan Login Apple Android ke:
- Buat ID Layanan
- Generate kunci pribadi (.p8 file)
- Dapatkan ID Tim dan ID Kunci
- Konfigurasi URL Pengembalian
-
Setel 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:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackPenting: Gunakan URL Fungsi Edge Supabase
TIDAK gunakan URL pengalihan dari Petunjuk Pengaturan Login Apple AndroidPetunjuk ini menggunakan URL server backend kustom. Untuk integrasi Supabase, Anda harus menggunakan URL Fungsi Edge Supabase bukan.
-
Kumpulkan semua nilai yang diperlukan
Setelah menyelesaikan panduan pengaturan Apple, Anda harus memiliki:
- ID APPLE_TEAM_ID: ID Tim Pengembang Apple Anda
- ID APPLE_KEY_ID: ID Kunci dari Portal Pengembang Apple
- ID APPLE_PRIVATE_KEY: File kunci pribadi .p8 Anda (perlu dikodekan base64)
- ID ANDROID_SERVICE_ID: ID Layanan Apple Anda (misal,
com.example.app.service) - ID BASE_REDIRECT_URL: URL Redirect Dasar Anda (misal,
capgo-demo-app://path)
Langkah 3: Atur Rahasia Supabase
Langkah 3: Atur Rahasia SupabaseSekarang kita perlu mengonfigurasi variabel lingkungan (rahasia) untuk Fungsi Edge Supabase.
-
Enkripsi kunci pribadi Anda
Pertama, encode kunci pribadi Apple Anda (.p8 file) ke base64:
Salin ke clipboard base64 -i AuthKey_XXXXX.p8Salin seluruh hasil (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 Pembaruan Pita → Pengaturan → Rahasia
- Tambahkan variabel rahasia dengan nilai masing-masing
Langkah 4: Gunakan Bantuan Autentikasi
Bagian berjudul “Langkah 4: Gunakan Bantuan Autentikasi”Sekarang Anda dapat menggunakan bantuan autentikasi di aplikasi Anda code.
Implementation
Bagian berjudul “Penerapan”The complete implementation is available in the contoh aplikasi’s supabaseAuthUtils.ts file.
Menggunakan Bantuan Autentikasi
Bagian berjudul “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 fungsi bantuan, Anda authenticateWithAppleSupabase Fungsi bantuan, Anda must Perbarui nilai-nilai berikut untuk sesuai dengan konfigurasi Anda:
-
Update
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
clientIdSetel 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 contoh Implementasi Lengkap untuk referensi.
Langkah 5: Tes Integrasi
Bagian berjudul “Langkah 5: Tes Integrasi”-
Bangun dan jalankan aplikasi Android Anda
Jendela Terminal npx cap sync androidnpx cap run android -
Uji alur autentikasi
- Tetikkan 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 alur
Alur lengkap harus seperti ini:
- Pengguna mengetuk “Masuk dengan Apple”
- Aplikasi membuka browser dengan OAuth Apple
- Pengguna autentikasi 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
Pembelajaran
Bagian Pemecahan MasalahBagian berjudul “Pembelajaran”
- Jika autentikasi gagal:Verifikasi URL Pengembalian di Portal Pengembang Apple sesuai dengan
APPLE_REDIRECT_URIsecret - Tautan dalam tidak berfungsiTautan dalam tidak berfungsi
AndroidManifest.xmlintent filter sesuai dengan AndaBASE_REDIRECT_URL - Kunci rahasia hilangVerifikasi semua rahasia telah diset dengan benar menggunakan
supabase secrets list - Token exchange gagal: Periksa log fungsi tepi di Supabase Dashboard untuk pesan kesalahan rinci
- Aplikasi tidak menerima callback: Pastikan
onNewIntenttelah diterapkan dengan benar di MainActivity - Periksa example app code Bagaimana Cara Kerjanya
Cara Kerjanya
Bagian berjudul “Cara Kerjanya”Pada Android, Sign-In Apple menggunakan aliran redirect OAuth:
- Initialization: Plugin ini diinisialisasi dengan ID Layanan Anda dan URL Redirect Backend Anda
- Aliran 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: Fungsi Edge mengganti code dengan token menggunakan endpoint token Apple
- Pengalihan 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
Teruskan dari Autentikasi Apple Supabase di Android
Judul bagian “Teruskan dari Autentikasi Apple Supabase di Android”Jika Anda menggunakan Autentikasi Apple Supabase di 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-login Sosial 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.