Accesso Apple di Supabase su Android
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
Requisiti
Sottosezione 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 Backend Edge
Sottosezione intitolata “Passo 1: Distribuisci la Funzione Backend Edge”Prima di tutto, dobbiamo distribuire la Funzione Edge Supabase che gestirà il callback OAuth Apple.
-
Naviga alla 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
La completa implementazione della funzione di edge è disponibile nell'applicazione di esempio Copia i seguenti file nel tuo progetto:.
- Funzione di edge principale __CAPGO_KEEP_0__
supabase/functions/apple-signin-callback/index.ts- Main edge function codesupabase/functions/apple-signin-callback/deno.json- Mappa di importazione per le dipendenze (inclusojose- Biblioteca 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.toml- file:[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" -
- Finestra del terminale
Nota: l'endpoint deve essere pubblico, quindi non richiedere autenticazione. Questo è necessario perché la reindirizzamento OAuth di Apple non include i token di autenticazione Supabase. L'endpoint verifica il flusso OAuth di per sé. supabase functions deploy apple-signin-callback -
Ottieni l'URL della tua funzione
Dopo la distribuzione, riceverai un URL del tipo:
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 sul
apple-signin-callbackl'URL della funzione per copiarlo.
- Apre
Passo 2: Configura il Portale dello Sviluppatore Apple
Titolo della sezione “Passo 2: Configura il Portale dello Sviluppatore Apple”Ora dobbiamo 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 del servizio
- Genera una chiave privata (.p8 file)
- Ottenere il tuo ID di Team e ID di 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 Funzione di Edge di Supabase:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportante: utilizza l'URL della Funzione di Edge di Supabase
Non utilizzare l'URL di reindirizzamento dal Guida di configurazione Apple Login Android. Questa guida utilizza un URL di server backend personalizzato. Per l'integrazione di Supabase, devi utilizzare invece l'URL della Funzione di Edge di Supabase.
-
Raccogli tutti i valori richiesti
Dopo aver completato la guida di configurazione di Apple, dovresti avere:
- ID DEL TEAM DI APPLE: Il tuo ID del Team di sviluppatore Apple
- ID DELLA CHIAVE DI APPLE: L'ID della chiave dal Portale dei Developer Apple
- CHIAVE PRIVATA DI APPLE: Il tuo file di chiave privata .p8 (che deve essere codificato in 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)
Step 3: Imposta i segreti di Supabase
Sezione intitolata “Step 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'intero output (è 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 alla dashboard del tuo progetto Supabase
- Naviga a Funzioni di Edge → Impostazioni → Segreti
- Aggiungi ogni variabile segreta con il suo valore
Passo 4: Utilizza l'aiuto di autenticazione
Sezione intitolata “Passo 4: Utilizza l'aiuto di autenticazione”Ora puoi utilizzare l'aiuto di autenticazione nel tuo app code.
Implementazione
Sezione intitolata “Implementazione”La completa implementazione è disponibile nel file dell'applicazione di esempio. File dell'applicazione di esempio supabaseAuthUtils.ts Utilizzo dell'Assistente di Autenticazione
Sezione intitolata “Utilizzo dell'Assistente di Autenticazione”
Copia nel portapenneimport { 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);}Sezione intitolata “Aggiorna la Funzione di Aiuto”
Quando si utilizza ilQuando si utilizza l'assistente di autenticazione authenticateWithAppleSupabase funzione di aiuto, tu devi aggiornare i seguenti valori per adattarli alla tua configurazione:
-
Aggiorna
redirectUrl- Imposta questo al tuo URL della funzione Supabase Edge:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Aggiorna
clientId- Imposta questo al tuo ID del 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 implementazione completa per riferimento.
Passo 5: Testa l'integrazione
Sezione intitolata “Passo 5: Testa l'integrazione”-
Costruisci e esegui l'app Android
Fermata dei comandi npx cap sync androidnpx cap run android -
Testa il flusso di autenticazione
- Tocca il pulsante “Accedi con Apple”
- Vorresti vedere la pagina di autenticazione 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 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 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à
- App si connette a Supabase con il token di identità
Risoluzione dei problemi
Sezione intitolata “Risoluzione dei problemi”Se l'autenticazione fallisce:
- Errore di URI di reindirizzamento: Verifica che l'URL di ritorno nel portale dello sviluppatore Apple corrisponda esattamente con
APPLE_REDIRECT_URIsegreto - Deep link non funziona: Assicurati che
AndroidManifest.xmll'filtro di intento corrisponda al tuoBASE_REDIRECT_URL - Segreti mancanti: Verifica che tutti i segreti siano impostati correttamente utilizzando
supabase secrets list - Scambio token fallisce: Controlla i registri della funzione di bordo nel Supabase Dashboard per messaggi di errore dettagliati
- L'app non riceve la callback: Assicurati che
onNewIntentsia implementato correttamente nella MainActivity - Rivedi l'esempio di app __CAPGO_KEEP_0__ example app code Come Funziona
context: Pagina/Area: Capgo Builder / prodotto di costruzione nativa di cloud. Ruolo: Intestazione di sezione o pagina. Chiave di messaggio `native_build_how_it_works_title` (Titolo di costruzione nativa Come Funziona). | Pagina/Area: Sezione di homepage problema/soluzione. Ruolo: Etichetta di UI breve o elemento di navigazione. Visto in: pagina premium-support.astro. Chiave di messaggio `ps_how_it_works` (Ps Come Funziona). | Pagina/Area: Pagina di aggiornamenti in tempo reale. Ruolo: Intestazione di sezione o pagina. Visto in: pagina live-update.astro. Chiave di messaggio `live_update_how_it_works_title` (Titolo di aggiornamento in tempo reale Come Funziona).
Sezione intitolata “Come Funziona”Sul sistema 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 backend
- Flusso OAuth: Apre una finestra del browser/Tab personalizzato di Chrome con la pagina OAuth di Apple
- Callback Backend: Apple reindirizza al tuo Funzione Edge Supabase con un'autorizzazione code
- Scambio Token: La funzione edge scambia il code per token utilizzando l'endpoint di token di Apple
- Reindirizzamento Link Profondo: La funzione edge reindirizza nuovamente al tuo app con il token di identità
- Autenticazione Supabase: L'app riceve il token e si connette a Supabase
Questo flusso è necessario perché Apple non fornisce supporto nativo per Android per l'accesso con Apple
Prosegui con Supabase Apple Login su Android
Sezione intitolata “Prosegui con Supabase Apple Login su Android”Se stai utilizzando Supabase Apple Login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-social-login per la capacità nativa in Utilizza @capgo/capacitor-social-login @capgo/capacitor-social-login per il dettaglio di implementazione in @capgo/capacitor-social-login @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey @capgo/capacitor-native-biometric per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.