Lompat ke konten

Login Apple Supabase di Android

GitHub

Panduan ini akan membantu Anda mengintegrasikan Sign-In Apple dengan Supabase Authentication pada Android. Diperkirakan Anda telah menyelesaikan:

Pertama, kami perlu mengdeploy Fungsi Edge Supabase yang akan menghandle panggilan balik Apple OAuth.

  1. Arahkan ke direktori proyek Supabase Anda

    Jendela terminal
    cd your-project/supabase
  2. Buat fungsi edge (jika tidak ada)

    Jendela terminal
    supabase functions new apple-signin-callback
  3. Salin fungsi edge code

    Implementasi fungsi edge lengkap tersedia di aplikasi contoh Salin berikut file ke proyek Anda:.

    - Fungsi edge utama __CAPGO_KEEP_0__

    • supabase/functions/apple-signin-callback/index.ts - Main edge function code
    • supabase/functions/apple-signin-callback/deno.json - Peta import untuk dependensi (termasuk jose library untuk tanda tangan JWT)
  4. Konfigurasi verifikasi JWT

    Endpoint panggilan balik OAuth Apple haruslah publik (tidak memerlukan autentikasi) karena Apple akan mengarahkan ke sana. Perbarui file: supabase/config.toml Salin ke clipboard

    [functions.apple-signin-callback]
    enabled = true
    verify_jwt = false # Important: Set to false for public OAuth callback
    import_map = "./functions/apple-signin-callback/deno.json"
    entrypoint = "./functions/apple-signin-callback/index.ts"
  5. Jendela terminal

    Important
    supabase functions deploy apple-signin-callback
  6. Dapatkan URL fungsi Anda

    Setelah di-deploy, Anda akan mendapatkan URL seperti:

    https://your-project-ref.supabase.co/functions/v1/apple-signin-callback

    Jika Anda tidak menemukannya, Anda dapat melakukan hal berikut:

    1. Buka https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions
    2. Klik pada URL apple-signin-callback fungsi untuk menyalinnya. Supabase Functions Apple Sign-In Callback

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.

  1. Ikuti Panduan Pengaturan Login Apple Android

    Selesai dengan Panduan Pengaturan Login Apple Android untuk:

    • Membuat ID Layanan
    • Menghasilkan kunci pribadi (.p8 file)
    • Oleh karena itu, dapatkan ID Tim dan Kunci ID Anda
    • Konfigurasi URL Pengembalian
  2. 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-callback

    Penting: Gunakan URL Fungsi Edge Supabase Anda

    TIDAK BOLEH 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 bukan URL pengalihan tersebut.

  3. Kumpulkan semua nilai yang diperlukan

    Setelah menyelesaikan panduan pengaturan Apple, Anda harus memiliki:

    • APPLE_TEAM_ID: ID Tim Pengembang Apple Anda
    • APPLE_KEY_ID: ID Kunci dari Portal Pengembang Apple
    • APPLE_PRIVATE_KEY: File kunci pribadi Anda (.p8) yang harus dikodekan base64
    • ID Layanan Android: ID Layanan Apple Anda (misalnya, com.example.app.service)
    • URL Redirect Dasar: URL tautan dalam yang lebih dalam (misalnya, capgo-demo-app://path)

Sekarang kita perlu mengatur variabel lingkungan (rahasia) untuk Fungsi Edge Supabase.

  1. Enkripsi kunci pribadi Anda

    Pertama, enkripsi kunci pribadi Apple (.p8 file) ke base64:

    Jendela terminal
    base64 -i AuthKey_XXXXX.p8

    Salin seluruh output (ini adalah string panjang tunggal).

  2. Atur rahasia menggunakan Supabase CLI

    Jendela terminal
    supabase secrets set APPLE_TEAM_ID=your_team_id
    supabase secrets set APPLE_KEY_ID=your_key_id
    supabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_key
    supabase secrets set ANDROID_SERVICE_ID=your.service.id
    supabase secrets set BASE_REDIRECT_URL=your-app://path
    supabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback
  3. Alternatif: Atur rahasia di Dashboard Supabase

    Jika Anda lebih suka menggunakan dashboard:

    1. Buka dashboard proyek Supabase Anda
    2. Navigasikan ke Fungsi Pemutus EdgesPengaturanRahasia
    3. Tambahkan variabel rahasia masing-masing dengan nilai

Bagian berjudul "Langkah 4: Gunakan Bantuan Autentikasi"

Konfigurasi Aplikasi Android

Kini Anda dapat menggunakan bantuan autentikasi di aplikasi Anda code.

Implementasi lengkap tersedia di contoh aplikasi’s supabaseAuthUtils.ts file.

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);
}

Ketika menggunakan authenticateWithAppleSupabase Fungsi bantuan, Anda harus perbarui nilai-nilai berikut untuk sesuai dengan konfigurasi Anda:

  1. 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;
  2. 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 Android
    redirectUrl: redirectUrl,
    },
    });

Lihat implementasi lengkap sebagai referensi.

  1. Bangun dan jalankan aplikasi Android Anda

    Jendela Terminal
    npx cap sync android
    npx cap run android
  2. Uji aliran autentikasi

    • Ketuk 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
  3. Verifikasi aliran

    Aliran lengkap seharusnya:

    1. Pengguna mengetuk “Masuk dengan Apple”
    2. Aplikasi membuka browser dengan Apple OAuth
    3. Pengguna autentikasi dengan Apple
    4. Apple mengarahkan ke: https://your-project-ref.supabase.co/functions/v1/apple-signin-callback
    5. Fungsi Edge mengganti code dengan token
    6. Fungsi Edge mengarahkan ke: your-app://path?id_token=...&access_token=...
    7. Aplikasi Android menerima tautan dalam dan memproses token identitas
    8. App masuk dengan menggunakan token identitas ke Supabase

Jika autentikasi gagal:

  • URI Redirect tidak sesuai: Pastikan URL Kembali di Portal Pengembang Apple sesuai dengan APPLE_REDIRECT_URI rahasia
  • Deep link tidak berfungsi: Periksa bahwa AndroidManifest.xml filter intent sesuai dengan BASE_REDIRECT_URL
  • Kunci rahasia hilang: Pastikan semua kunci rahasia telah diset dengan benar menggunakan supabase secrets list
  • Kegagalan pertukaran token: Periksa log fungsi tepi di Dashboard Supabase untuk pesan kesalahan rinci
  • Gagal menerima panggilan balik: Pastikan onNewIntent telah diimplementasikan dengan benar di MainActivity
  • Ulas contoh aplikasi __CAPGO_KEEP_0__ example app code Bagaimana Cara Kerjanya

context: Halaman/area: Pembuat Capgo / produk halaman native cloud build. Peran: Judul bagian atau halaman. Pesan kunci `native_build_how_it_works_title` (Judul Bagaimana Cara Kerjanya Native Build). | Halaman/area: Halaman utama bagian masalah/solusi. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman premium-support.astro. Pesan kunci `ps_how_it_works` (Ps Bagaimana Cara Kerjanya). | Halaman/area: Halaman produk update hidup. Peran: Judul bagian atau halaman. Dilihat di: halaman live-update.astro. Pesan kunci `live_update_how_it_works_title` (Judul Bagaimana Cara Kerjanya Update Hidup).

Judul bagian berjudul “Bagaimana Cara Kerjanya”

Pada Android, Sign-In Apple menggunakan aliran redirect OAuth:

  1. Inisialisasi: Plugin ini diinisialisasi dengan ID Layanan dan URL Redirect Backend Anda
  2. Alur OAuth: Membuka browser/Tab Chrome Kustom Apple dengan halaman OAuth Apple
  3. Panggilan Balik Backend: Apple mengarahkan ke fungsi Edge Supabase Anda dengan otorisasi code
  4. Pertukaran Token: Fungsi Edge mengganti code dengan token menggunakan endpoint token Apple
  5. Pengalihan Redirect dalam Kedalaman: Fungsi Edge mengarahkan kembali ke aplikasi Anda dengan token identitas
  6. 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 Login Apple di Android

Judul Bagian: Teruskan dari Supabase Login Apple di Android

Jika Anda menggunakan Supabase Login Apple 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-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 Dua Faktor Autentikasi untuk detail implementasi di Dua Faktor Autentikasi.