Supabase Apple Login on Android
Copia un prompt di installazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Requisiti preliminari
Sezione intitolata “Prerequisiti”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”Innanzitutto, dobbiamo distribuire la Funzione Edge Supabase che gestirà il callback OAuth Apple.
-
Accedi alla directory del tuo progetto Supabase
Fenestra 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 completa implementazione della funzione di edge è disponibile nell' esempio di applicazione.
Copia i seguenti file nel tuo progetto:
supabase/functions/apple-signin-callback/index.ts- Funzione di edge principale codesupabase/functions/apple-signin-callback/deno.json- Mappa di importazione per le dipendenze (includejoselibreria per la firma JWT)
-
Configura la verifica del JWT
L'endpoint di callback OAuth di Apple deve essere pubblico (nessuna autenticazione richiesta) perché Apple lo redirigerà. 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, otterrai un URL come:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSe non riesci a trovarlo, puoi fare le seguenti cose:
- Apre
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Clicca sul
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”Now dobbiamo configurare il portale degli sviluppatori 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 dell'accesso Apple Android a:
- Creare un ID di servizio
- Genera una chiave privata (.p8 file)
- Otterra il tuo ID di squadra e ID 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 (passaggio 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 di Apple Login per Android. Questa guida utilizza un URL di server backend personalizzato. Per l'integrazione di Supabase, dovrai utilizzare invece l'URL della tua funzione Edge Supabase.
-
Raccogli tutti i valori richiesti
Dopo aver completato la guida di configurazione per Apple, dovresti avere:
- APPLE_TEAM_ID: Il tuo ID di team di sviluppatore Apple
- APPLE_KEY_ID: L'ID chiave dal portale di sviluppatore Apple
- APPLE_PRIVATE_KEY: Il tuo file di chiave privata .p8 (che deve essere codificato in base64)
- ANDROID_SERVICE_ID: Il tuo ID del servizio Apple (ad esempio,
com.example.app.service) - BASE_REDIRECT_URL: L'URL di reindirizzamento profondo (ad esempio,
capgo-demo-app://path)
Esegui passo 3: Imposta i segreti di Supabase
Sottosezione intitolata “Esegui 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
In primo luogo, 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 unica).
-
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 al tuo dashboard del 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'helper di autenticazione”Ora puoi utilizzare l'helper di autenticazione nella tua app code.
Eseguimento
EsecuzioneLa completa esecuzione è disponibile nel file dell'applicazione di esempio. supabaseAuthUtils.ts Utilizzo dell'Helper di Autenticazione
Sottosezione intitolata “Utilizzo dell'Helper di Autenticazione”
Copia negli appuntiimport { 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);}Sottosezione intitolata “Aggiorna la Funzione dell'Helper”
Quando si utilizza lafunzione dell'helper, si deve authenticateWithAppleSupabase __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Aggiorna i seguenti valori per adattarli alle tue impostazioni:
-
Aggiorna
redirectUrl- Imposta questo valore con l'URL della tua Funzione Edge Supabase:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Aggiorna
clientId- Imposta questo valore con il 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 l' implementazione completa per riferimento.
Passo 5: Testa l'integrazione
Sezione intitolata “Passo 5: Testa l'integrazione”-
Costruisci e esegui la tua app Android
Finestra del terminale npx cap sync androidnpx cap run android -
Testa il flusso di autenticazione
- Tocca il pulsante “Accedi con Apple”
- Dovresti 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 premere 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 - La funzione Edge scambia code per token
- La funzione Edge 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à
Risoluzione dei problemi
Sezione intitolata “Risoluzione dei problemi”Se la autenticazione fallisce:
- URI di reindirizzamento non corrispondente: Verifica che l'URL di ritorno nel Portale dello sviluppatore Apple corrisponda esattamente con
APPLE_REDIRECT_URIsegreto - Deep link non funziona: Assicurati che
AndroidManifest.xmlfiltro di intento corrisponda a quello del tuoBASE_REDIRECT_URL - Segreti mancanti: Verifica che tutti i segreti siano impostati correttamente utilizzando
supabase secrets list - Fallimento dell'interscambio di token: Controlla i log della funzione di edge nel Dashboard di Supabase per messaggi di errore dettagliati
- L'app non riceve callback: Assicurati
onNewIntentsia implementato correttamente in MainActivity - Revisiona l'applicazione di esempio __CAPGO_KEEP_0__ example app code Come Funziona
Sottosezione intitolata “Come Funziona”
Sul sistema Android, Apple Sign-In utilizza un flusso di OAuth di reindirizzamento:Inizializzazione
- : Il plugin viene inizializzato con il tuo ID Servizio e l'URL di reindirizzamento del backendFlusso OAuth
- Flusso OAuth: Apre una finestra del browser/Chrome Custom Tab con la pagina di Apple per l'autenticazione OAuth
- 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
Questa sequenza di operazioni è necessaria perché Apple non fornisce supporto nativo per Android per l'accesso con l'ID Apple.
Continua da Supabase Apple Login on Android
Sezione intitolata “Continua da Supabase Apple Login on Android”If you are using Supabase Apple Login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Usando @capgo/capacitor-login-social per la capacità nativa in Usando @capgo/capacitor-login-social, @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometria-nativa per il dettaglio di implementazione in @capgo/capacitor-biometria-nativa, e Autenticazione a due fattori per i dettagli di implementazione in due fattori di autenticazione.