Supabase Google Login su iOS
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Introduzione
Sezione intitolata “Introduzione”Questa guida ti aiuterà a integrare l'accesso con Google con l'autenticazione di Supabase su iOS. Si presume che tu abbia già completato:
Esecuzione
Sottosezione intitolata “Esecuzione”L'implementazione completa è disponibile nel file dell'applicazione di esempio. Questa guida spiega i concetti chiave e come utilizzarla. supabaseAuthUtils.ts Utilizzo dell'Helper di Autenticazione
Sottosezione intitolata “Utilizzo dell'Helper di Autenticazione”
Lafunzione gestisce l'intero flusso di autenticazione: authenticateWithGoogleSupabase Copia nel portapenna
import { authenticateWithGoogleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithGoogleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}Sottosezione intitolata “Come Funziona”
__CAPGO_KEEP_0__Per una spiegazione dettagliata di come funziona il flusso di autenticazione, compresa la generazione del nonce, la validazione del JWT e l'accesso a Supabase, vedere la sezione Come Funziona sezione nella Guida di Configurazione Generale.
Caveats Importanti
Sezione intitolata “Caveats Importanti”Cache Token iOS e Problemi con il Nonce
Sezione intitolata “Cache Token iOS e Problemi con il Nonce”Problema di Cache del Nonce iOS
Su iOS, Google Sign-In può memorizzare i token, il che può causare la fallita della validazione del nonce. La validateJWTToken La funzione rileva questo e lo gestisce automaticamente:
- Rilevamento AutomaticoLa funzione controlla se il nonce nel token corrisponde a quello previsto
nonceDigest - Ritentativo Automatico: Se la validazione fallisce, si esce automaticamente da Google e si riprova una volta
- Error Handling: Se anche la riprova fallisce, viene restituito un errore
Perché succede: L'accesso Google su iOS di SDK memorizza i token per le prestazioni. Quando viene restituito un token memorizzato, potrebbe essere stato generato con un diverso nonce (o nessun nonce), causando un malfunzionamento.
La soluzione: L'implementazione gestisce automaticamente questo problema escludendosi e riprovando, il che costringe Google a generare un nuovo token con il nonce corretto.
Lavoro manuale (se la riprova automatica non funziona): Copia
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Per la documentazione completa di __CAPGO_KEEP_0__ vedere il
For the complete code reference, see the Completa la sezione di riferimento Code nella guida di configurazione generale.
Nota importante
Sezione intitolata “Nota importante”Gestione del nonce
Sezione intitolata “Gestione del nonce”L'implementazione del nonce segue il modello dal documento di riferimento di React Native Google Sign In va a Supabase's:
rawNonceSupabase crea un hash disignInWithIdToken()- e lo confronta con il
rawNonceche è incluso nel token ID da Google Sign-InnonceDigest(hash SHA-256, codificato in esadecimale) va al nonceDigest(hash SHA-256, codificato in esadecimale) va alnonceparametro nelle API di accesso di Google
Mecanismo di Ricontrollo Automatico
Sottosezione intitolata “Mecanismo di Ricontrollo Automatico”Questo authenticateWithGoogleSupabase la funzione include un retry parametro:
- Prima chiamata (
retry=false): Se la validazione fallisce, si esce automaticamente e si riprova una volta - Chiamata di riprova (
retry=true): Se la validazione fallisce nuovamente, restituisce immediatamente un errore
Questo risolve automaticamente il problema del caching dei token iOS.
Risoluzione dei Problemi
Sezione intitolata “Risoluzione dei problemi”Se la autenticazione fallisce:
- Errore di nonce: La funzione riprova automaticamente - controlla i log del console per i dettagli. Se persiste, disconnetti manualmente per primo
- Audience non valida: Verifica che i Client ID Google siano coerenti in entrambi il Console di Google Cloud e Supabase (entrambi i Client ID iOS e Web)
- La validazione del token fallisce: Assicurati di utilizzare
mode: 'online'nel chiamata di inizializzazione per ottenere un idToken - Configurazione di Info.plist: Assicurati che Info.plist abbia gli schemi URL corretti e GIDClientID
- Rivista il esempio di app code per riferimento
Continua da Supabase Google Login su iOS
Sezione intitolata “Continua da Supabase Google Login su iOS”Se stai utilizzando Supabase Google Login su iOS per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzando @capgo/capacitor-login-social per la capacità nativa in Utilizzando @capgo/capacitor-login-social, @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social, @capgo/capacitor-passkey per i dettagli 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.