Supabase Apple Login su Android
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Requisiti
Sezione intitolata “Requisiti”Questa guida ti aiuterà a integrare l'accesso con Apple con l'autenticazione Supabase su Android. Si presume che tu abbia già completato:
Passo 1: Distribuisci la Funzione di Edge Backend
Sezione intitolata “Passo 1: Distribuisci la Funzione di Edge Backend”In primo luogo, dobbiamo distribuire la Funzione di Edge Supabase che gestirà il callback OAuth Apple.
-
Naviga nella directory del tuo progetto Supabase
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
L'implementazione completa della funzione di edge è disponibile nel esempio app.
Copia i seguenti file nel tuo progetto:
supabase/functions/apple-signin-callback/index.ts- Funzione principale di edge codesupabase/functions/apple-signin-callback/deno.jsonMappa di importazione per le dipendenze (includejoselibreria per la firma JWT
-
Configura la verifica JWT
L'endpoint di callback OAuth di 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, otterrai un URL come:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSe non riesci a trovarlo, puoi fare le seguenti cose:
- Apri
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Clicca su
apple-signin-callbackl'URL della funzione per copiarlo.
- Apri
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 a:
- Crea un ID del Servizio
- Genera una chiave privata (file .p8)
- Ottieni il tuo ID della Squadra e 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 (passaggio 6.9 della guida Apple), utilizza l'URL della Funzione Edge di Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportante: utilizza l'URL della Funzione Edge di Supabase
Non fare non utilizzare l'URL di reindirizzamento dal guida di configurazione Apple Login per Android. Questa guida utilizza un URL del server backend personalizzato. Per l'integrazione con Supabase, dovete utilizzare il vostro URL della funzione di edge di Supabase invece.
-
Raccogli tutti i valori richiesti
Dopo aver completato la guida di configurazione di Apple, dovreste avere:
- APPLE_TEAM_ID: Il vostro ID di squadra di sviluppatore Apple
- APPLE_KEY_ID: Il codice chiave dal portale dello sviluppatore Apple
- APPLE_PRIVATE_KEY: Il tuo file di chiave privata .p8 (che richiede codifica base64)
- ANDROID_SERVICE_ID: Il tuo ID di servizio Apple (ad esempio,
com.example.app.service) - BASE_REDIRECT_URL: La tua URL di reindirizzamento profonda (ad esempio,
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 (secrets) per la Funzione Edge di Supabase.
-
Codifica la tua chiave privata
In primo luogo, codifica la tua chiave privata Apple (.p8 file) in base64:
Finestra del terminale base64 -i AuthKey_XXXXX.p8Copia l'intera uscita (è una singola lunga stringa).
-
Imposta i segreti utilizzando Supabase CLI
Finestra 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 i 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 segreta 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 nel tuo app code.
Implementazione
Sezione intitolata “Implementazione”La completa implementazione è disponibile nell' esempio app's supabaseAuthUtils.ts file.
Utilizzo dell'helper di autenticazione
Sezione intitolata “Utilizzo dell'helper 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 di Aiuto
Sezione intitolata “Aggiorna la Funzione di Aiuto”Quando si utilizza la authenticateWithAppleSupabase funzione di aiuto, è necessario aggiornare i seguenti valori per farli corrispondere alla tua configurazione: Aggiorna
-
- Imposta questo su URL della Funzione Edge di Supabase:
redirectUrlCopia nel portapenneconst redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
- Imposta questo sul tuo ID Servizio Apple:
clientIdCopia nel portapenneawait SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
per riferimento. Passo 5: Testa l'Integrazione Sezione intitolata “Passo 5: Testa l'Integrazione”
Costruisci e esegui il tuo app Android
Finestra del terminale-
Sostituisci con il tuo ID di Servizio Apple reale (lo stesso valore che hai utilizzato per
in Passo 3). npx cap sync androidnpx cap run android -
Testa il flusso di autenticazione
- Tocca il pulsante “Accedi con Apple”
- Dovresti vedere la pagina di autenticazione 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 tocca “Accedi con Apple”
- L'app apre un browser con Apple OAuth
- 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 con 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 connette a Supabase con il token di identità
Risoluzione dei problemi
Sottosezione intitolata “Risoluzione dei problemi”Se la connessione non riesce:
- URI di reindirizzamento non corrispondente: Verifica che l'URL di ritorno nel Portale dello Sviluppatore Apple corrisponda esattamente con
APPLE_REDIRECT_URIsegreto - Link profondo non funziona: Verifica che
AndroidManifest.xmlil filtro di intento corrisponde al tuoBASE_REDIRECT_URL - Segreti mancanti: Verifica che tutti i segreti siano impostati correttamente utilizzando
supabase secrets list - Fallisce l'interscambio di token: Controlla i log dell'edge function nel Dashboard di Supabase per messaggi di errore dettagliati
- L'app non riceve la callback: Assicurati che
onNewIntentsia implementato correttamente nella MainActivity - Rivista l'applicazione di esempio __CAPGO_KEEP_0__ example app code Come Funziona
How It Works
Sezione intitolata “Come Funziona”Su Android, Apple Sign-In utilizza un flusso di reindirizzamento OAuth:
- Inizializzazione: Il plugin viene inizializzato con il tuo ID Servizio e l'URL di reindirizzamento del backend
- Flusso OAuth: Si apre una finestra del browser/Tab personalizzato di Chrome con la pagina OAuth di Apple
- Callback del Backend: Apple reindirizza al tuo Funzione di Edge Supabase con un'autorizzazione code
- Scambio di Token: La funzione di edge scambia il code per token utilizzando l'endpoint di token di Apple
- Reindirizzamento del Link Profondo: La funzione di edge reindirizza nuovamente al tuo app con il token di identità
- Autenticazione Supabase: L'app riceve il token e si iscrive a Supabase
Questa procedura è necessaria perché Apple non fornisce supporto nativo per Android per il Sign in with Apple.