Supabase Google Login su iOS
Copiare un prompt di impostazione 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:
Implementazione
Sezione intitolata “Implementazione”La completa implementazione è disponibile nel file dell'applicazione di esempio. Questa guida spiega i concetti chiave e come utilizzarla. supabaseAuthUtils.ts L'utilizzo dell'aiuto di autenticazione
Sezione intitolata “L'utilizzo dell'aiuto di autenticazione”
The complete implementation is available in the __CAPGO_KEEP_0__ file. This guide explains the key concepts and how to use it. Using the Authentication Helper Section titled “Using the Authentication Helper”The authenticateWithGoogleSupabase la funzione gestisce l'intero flusso di autenticazione:
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);}Come funziona
Sottosezione intitolata “Come funziona”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 nella guida di configurazione generale.
Caveats importanti
Sottosezione intitolata “Caveats importanti”Issue di caching del token iOS e problemi di nonce
Sottosezione intitolata “Issue di caching del token iOS e problemi di nonce”Issue di caching del nonce iOS
Sul sistema operativo iOS, Google Sign-In può memorizzare i token, il che potrebbe causare la fallita validazione del nonce. La validateJWTToken funzione rileva questo e lo gestisce automaticamente:
- Rilevamento Automatico: La funzione controlla se il nonce nel token corrisponde a quello previsto
nonceDigest - Ritenta Automaticamente: Se la validazione fallisce, si esce automaticamente da Google e si ritenta una volta
- Gestione degli Errori: Se anche la seconda tentativa fallisce, viene restituito un errore
Perché succede: Il sistema operativo iOS Google Sign-In SDK memorizza i token per migliorare le prestazioni. Quando viene restituito un token memorizzato, potrebbe essere stato generato con un diverso nonce (o nessun nonce), causando un disallineamento.
La soluzione: L'implementazione gestisce automaticamente questo problema facendo uscire e riprovando, il che costringe Google a generare un token fresco con il nonce corretto.
Soluzione di lavoro manuale (se il riprova automatico non funziona):
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Ciò assicura un token fresco ottenuto con il nonce corretto.
Per la documentazione completa code, vedere la Documentazione completa Code nella sezione Impostazioni generali.
Note importanti
Sottosezione intitolata “Note importanti”Gestione del nonce
Sottosezione intitolata “Gestione del nonce”L'implementazione del nonce segue il pattern dalla documentazione di React Native Google Sign In:
rawNonceva a Supabase’ssignInWithIdToken()- Supabase crea un hash di
rawNoncee lo confronta con ilnonceDigestche è incluso nel token ID da Google Sign-In nonceDigest(hash SHA-256, codificato in esadecimale) va alnonceparametro in API di Google Sign-In
Mechanismo di Ricitrata Automatico
Sezione intitolata “Mechanismo di Ricitrata Automatico”Il authenticateWithGoogleSupabase funzione include un retry parametro:
- Prima chiamata (
retry=falseIf la validazione fallisce, si esegue automaticamente il logout e si riprova una volta - Riprovare la chiamata (
retry=trueSe la validazione fallisce nuovamente, restituisce immediatamente un errore
Questo gestisce automaticamente il problema di caching dei token iOS.
Risoluzione dei problemi
Sezione intitolata “Risoluzione dei problemi”Se la autenticazione fallisce:
- Discrepanza di nonce: La funzione riprova automaticamente - controlla i log del console per ulteriori dettagli. Se persiste, esegui il logout manualmente per primo
- Audience non valida: Verifica che gli ID Client Google corrispondano in entrambi il Cloud Console di Google e Supabase (entrambi gli ID client iOS e Web)
- La validazione dei token fallisce: Assicurati di utilizzare
mode: 'online'in l'invocazione di inizializzazione per ottenere un idToken - Configurazione di Info.plist: Assicurati che Info.plist abbia i corretti schemi di URL e GIDClientID
- Recensisci l'esempio di app __CAPGO_KEEP_0__ example app code Continua da Supabase Google Login on iOS
Sottosezione intitolata “Continua da Supabase Google Login on iOS”
Se stai utilizzandoSupabase Google Login on iOS per pianificare l'autenticazione e le flussi di account, connettilo con Si stai utilizzando Supabase Google Login on iOS per pianificare l'autenticazione e le flussi di account, connettilo con Usando @capgo/capacitor-login sociale per la capacità nativa in Usando @capgo/capacitor-login sociale, @capgo/capacitor-login sociale per il dettaglio di implementazione in @capgo/capacitor-login sociale, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometrica nativa per il dettaglio di implementazione in @capgo/capacitor-biometrica nativa, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.