Supabase Apple Login su Android
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
Prerequisites
Sezione intitolata “Requisiti”Questa guida ti aiuterà a integrare Apple Sign-In con l'autenticazione Supabase su Android. Si presume che tu abbia già completato:
Passo 1: Distribuisci la Funzione Edge Backend
Sezione intitolata “Passo 1: Distribuisci la Funzione Edge Backend”Prima di tutto, dobbiamo distribuire la Funzione Edge Supabase che gestirà il callback OAuth Apple.
-
Naviga nel tuo progetto Supabase directory
Finestra del terminale cd your-project/supabase -
Crea la funzione di edge (se non esiste)
Finestra del terminale supabase functions new apple-signin-callback -
Copia la funzione di edge code
La funzione di edge completa è disponibile nel example app.
- Funzione principale di edge __CAPGO_KEEP_0__
supabase/functions/apple-signin-callback/index.ts- Funzione principale dell'edge codesupabase/functions/apple-signin-callback/deno.json- Mappa di importazione per le dipendenze (include)josebiblioteca per la firma JWT)
-
Configura la verifica JWT
L'endpoint di callback OAuth Apple deve essere pubblico (nessuna autenticazione richiesta) perché Apple lo reindirizzerà. Aggiorna il tuo
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" -
Distribuisci la funzione
finestra del terminale supabase functions deploy apple-signin-callback -
Ottieni l'URL della tua funzione
Dopo la distribuzione, riceverai un URL come:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSe non riesci a trovarlo, puoi provare le seguenti azioni:
- Apre
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Clicca sull'
apple-signin-callbackURL della funzione per copiarlo.
- Apre
Passo 2: Configura il portale dello sviluppatore Apple
Sezione intitolata “Passo 2: Configura il portale dello sviluppatore Apple”Ora abbiamo bisogno di configurare il portale dello sviluppatore Apple con l'URL del backend e ottenere tutti i valori richiesti.
-
Segui la Guida di configurazione per l'accesso Apple Android
Completa il guida di configurazione per l'accesso Apple Android per:
- Creare un ID di servizio
- Genera una chiave privata (.p8 file)
- Otterrai l'ID del team e l'ID della chiave
- Configura l'URL di ritorno
-
Imposta l'URL di ritorno nel portale dello sviluppatore Apple
Quando si configura l'URL di ritorno nel portale dello sviluppatore Apple (passo 6.9 della guida Apple), utilizza l'URL della tua funzione Edge Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportante: utilizza l'URL della tua funzione Edge Supabase
Non utilizzare l'URL di reindirizzamento dal guida di configurazione Apple Login Android. Questa guida utilizza un URL di backend server personalizzato. Per l'integrazione con Supabase, devi utilizzare l'URL della tua funzione Edge Supabase al posto.
-
Raccogli tutti i valori richiesti
Dopo aver completato la guida di configurazione di Apple, dovresti avere:
- ID del Team Apple: Il tuo ID di team di sviluppatore Apple
- ID DELLA CHIAVE APPLE: L'ID chiave dal portale di sviluppatore Apple
- Chiave privata Apple: Il tuo file di chiave privata .p8 (deve essere codificato in base64)
- ID del servizio ANDROID: Il tuo ID del servizio Apple (ad esempio,
com.example.app.service) - : L'URL di reindirizzamento profonda (ad esempio,URL di reindirizzamento profonda
capgo-demo-app://path)
Passo 3: Imposta i segreti di Supabase
Sezione intitolata “Passo 3: Imposta i segreti di Supabase”Ora abbiamo bisogno di configurare le variabili di ambiente (segreti) per la funzione Edge di Supabase.
-
Codifica la tua chiave privata
Prima, codifica la tua chiave privata Apple (.p8 file) in base64:
Fermata del terminale base64 -i AuthKey_XXXXX.p8Copia l'intero output (è una stringa lunga e singola).
-
Imposta i segreti utilizzando Supabase CLI
Fermata del terminale 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 -
Alternativa: Imposta segreti nel dashboard di Supabase
Se preferisci utilizzare il dashboard:
- Vai alla dashboard del tuo progetto Supabase
- Naviga a Funzioni di Edge → Impostazioni → Segreti
- Aggiungi ogni variabile segreto con il suo valore
Passo 4: Utilizza l'helper di autenticazione
Sezione intitolata “Passo 4: Utilizza l’aiuto di autenticazione”Ora puoi utilizzare l'aiuto di autenticazione nel tuo app code.
Esecuzione
Sezione intitolata “Esecuzione”L'implementazione completa è disponibile nel file dell'applicazione di esempio. supabaseAuthUtils.ts file.
Sezione intitolata “Utilizzo dell'helper di autenticazione”
Sezione intitolata “Utilizzo dell’aiuto di autenticazione”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);}Aggiorna la funzione helper
Sezione intitolata “Aggiorna la funzione helper”Quando si utilizza la authenticateWithAppleSupabase funzione helper, tu deve aggiornare i seguenti valori per adattarli alla vostra configurazione:
-
Aggiorna
redirectUrl- Impostalo sul tuo URL della funzione Supabase Edge:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Aggiorna
clientId- Impostalo sul tuo ID Servizio Apple:await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
Vedi il Esecuzione completa per riferimento.
Step 5: Testa l'Integrazione
Sezione intitolata “Passo 5: Testa l'integrazione”-
Sezione intitolata “Step 5: Testa l'Integrazione”
Finestra del terminale npx cap sync androidnpx cap run android -
Verifica il flusso di autenticazione
- Tocca il pulsante “Accedi con Apple”
- Vedresti vedere la pagina OAuth di Apple in un browser.
- Dopo l'autenticazione, dovresti essere reindirizzato nuovamente alla tua app
- Controlla i registri del console per eventuali errori
-
Verifica il flusso
Il flusso completo dovrebbe essere:
- L'utente clicca su “Accedi con Apple”
- L'app apre il browser con OAuth Apple
- L'utente si autentica con Apple
- Apple reindirizza a:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - L'edge funzione scambia code per token
- L'edge funzione reindirizza a:
your-app://path?id_token=...&access_token=... - L'app Android riceve il link profondo e elabora il token di identità
- L'app si iscrive a Supabase con il token di identità
Risolvere i problemi
Sezione intitolata “Risolvere i problemi”Se l'autenticazione fallisce:
- URI di reindirizzamento non corrispondente: Verifica che l'URL di ritorno nel portale dello sviluppatore Apple corrisponda esattamente con
APPLE_REDIRECT_URIsegreto - La deep link non funziona: Assicurati che
AndroidManifest.xmlil filtro di intento corrisponda al tuoBASE_REDIRECT_URL - Segreti mancanti: Verify all secrets are set correctly using
supabase secrets list - Fallisce l'interscambio di tokenControlla i log delle funzioni edge nel Dashboard Supabase per messaggi di errore dettagliati.
- L'app non riceve la callback: Assicurati
onNewIntentche sia implementato correttamente nella MainActivity - Valuta il app esempio code Come Funziona
On Android, Apple Sign-In uses an OAuth redirect flow:
- InitializationIl plugin viene inizializzato con il tuo ID Servizio e l'URL di reindirizzamento del backend
- OAuth Flow: Opens a browser/Chrome Custom Tab with Apple’s OAuth page
- Callback del Backend: Apple reindirizza alla tua Funzione Edge di Supabase con un'autorizzazione code
- Scambio di Token: La funzione edge scambia il code per token utilizzando l'endpoint di token di Apple
- Ridirezione del Link Profondo: La funzione edge reindirizza nuovamente alla tua app con il token di identità
- Autenticazione di Supabase: L'app riceve il token e si autentica a Supabase
Questo flusso è necessario perché Apple non fornisce supporto nativo per Android per l'accesso con Apple
Continua con l'accesso Apple di Supabase su Android
Sezione intitolata “Continua con Supabase Apple Login su Android”Se sei in uso a Supabase Apple Login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-login-social per la capacità nativa in Utilizza @capgo/capacitor-login-social Utilizza @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social Utilizza @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey Utilizza @capgo/capacitor-biometrica-nativa per il dettaglio di implementazione in @capgo/capacitor-biometrica-nativa Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.