Supabase Apple Login pada Android
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Persyaratan
Judul Bagian “Persyaratan”Ini panduan untuk mengintegrasikan Sign-In Apple dengan Supabase Authentication pada Android. Kami asumsikan Anda telah menyelesaikan:
Judul Bagian “Langkah 1: Deploy Fungsi Edge Backend”
Langkah 1: Mengaktifkan Fungsi Edge BackendPertama, kita perlu mengaktifkan fungsi Edge Supabase yang akan mengelola panggilan balik OAuth Apple.
-
Navigasikan ke direktori proyek Supabase Anda
Jendela terminal cd your-project/supabase -
Create the edge function (jika tidak ada)
Jendela terminal supabase functions new apple-signin-callback -
Salin fungsi edge code
Implementasi fungsi edge lengkap tersedia di aplikasi contoh Aplikasi Contoh.
Salin file-file berikut ke proyek Anda:
supabase/functions/apple-signin-callback/index.ts- Fungsi Edge Utama codesupabase/functions/apple-signin-callback/deno.json- Fungsi edge utama __CAPGO_KEEP_0__joselibrary untuk tanda tangan JWT)
-
Konfigurasi verifikasi JWT
Endpoint panggilan balik Apple OAuth harus publik (tidak memerlukan autentikasi) karena Apple akan mengarahkan ke sana. Perbarui file:
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" -
Jalankan fungsi
Jendela terminal supabase functions deploy apple-signin-callback -
Olehkan 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 URL
apple-signin-callbackURL panggilan balik Apple Sign-In Supabase Functions
- 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 dibutuhkan.
-
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
-
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 Anda:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackPenting: Gunakan URL Fungsi Edge Supabase Anda
Jangan gunakan URL pengalihan dari Petunjuk 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 harus memiliki:
- ID APPLE_TEAM_ID: ID Tim Pengembang Apple Anda
- ID APPLE KEY: ID Kunci dari Portal Pengembang Apple
- Kunci Privat Apple: File kunci pribadi .p8 Anda (perlu dienkripsi base64)
- ID Layanan ANDROID: ID Layanan Apple Anda (misal,
com.example.app.service) - URL Redirect Dasar: URL tautan dalam yang dalam (misal,
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 hasilnya (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 Pemotong Pita → Pengaturan → Rahasia
- Tambahkan variabel rahasia masing-masing dengan nilai
Langkah 4: Gunakan Bantuan Autentikasi
Bagian berjudul “Langkah 4: Gunakan Bantuan Autentikasi”Sekarang Anda dapat menggunakan bantuan autentikasi di aplikasi Anda code.
Implementasi
Bagian berjudul “Implementasi”Implementasi lengkap tersedia di file 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
Bagian berjudul “Perbarui Fungsi Bantuan”Menggunakan fungsi bantuan, Anda authenticateWithAppleSupabase Menggunakan fungsi bantuan, Anda Wajib 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 contoh lengkap untuk referensi. Langkah 5: Uji Integrasi
Langkah 5: Uji Integrasi
Section titled “Step 5: Test the Integration”-
Judul Bagian “Langkah 5: Uji Integrasi”
Jendela Terminal npx cap sync androidnpx cap run android -
Cobalah menguji alur autentikasi
- Tekan tombol "Masuk dengan Apple"
- Anda harus melihat halaman OAuth Apple di browser
- Setelah otentikasi, Anda seharusnya diarahkan kembali ke aplikasi Anda
- Cek log konsol untuk kesalahan apa pun
-
Verifikasi alur
Alur lengkap seharusnya:
- Pengguna menekan “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
Mengatasi Masalah
Bagian Pemecahan MasalahJika Autentikasi Gagal:
- Mismatch Redirect URIVerifikasi URL Pengembalian di Portal Pengembang Apple sesuai dengan
APPLE_REDIRECT_URIRahasia - Tautan Deep Tidak Berfungsi: Periksa bahwa
AndroidManifest.xmlFilter Niat sesuai denganBASE_REDIRECT_URL - Rahasia Hilang: Verifikasi semua rahasia telah disetel dengan benar menggunakan
supabase secrets list - Gagal Mengubah Token: Periksa log fungsi tepi di Dashboard Supabase untuk pesan kesalahan yang lebih rinci
- App tidak menerima panggilan balik: Pastikan
onNewIntentadalah diimplementasikan dengan benar di MainActivity - Ulasan example app code Bagaimana Cara Kerjanya
Bagaimana Cara Kerjanya
Bagian berjudul "Cara Kerjanya"Pada Android, Apple Sign-In menggunakan aliran redirect OAuth:
- InitializationPlugin ini diinisialisasi dengan ID Layanan Anda dan URL redirect backend Anda.
- Aliran OAuth: Membuka browser/Tab Chrome Kustom dengan halaman OAuth Apple
- Callback Backend: Apple mengarahkan ke fungsi Edge Supabase Anda dengan otorisasi code
- Pertukaran Token: Fungsi Edge mengganti code dengan 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
Aliran ini diperlukan karena Apple tidak menyediakan dukungan native Android untuk Sign in dengan Apple.
Teruskan dari Login Apple Supabase di 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, Menggunakan @capgo/capacitor-social-login untuk detail implementasi di Menggunakan @capgo/capacitor-social-login, Menggunakan @capgo/capacitor-passkey untuk detail implementasi di Menggunakan @capgo/capacitor-passkey, Menggunakan @capgo/capacitor-native-biometric untuk detail implementasi di Menggunakan @capgo/capacitor-native-biometric, dan Autentikasi Dua Faktor untuk detail implementasi di Autentikasi Dua Faktor.