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 Google con l'autenticazione Supabase su iOS. Si presume che tu abbia già completato:
Implementazione
Sezione intitolata “Implementazione”L'implementazione completa è disponibile nel file dell'applicazione di esempio. supabaseAuthUtils.ts Questa guida spiega i concetti chiave e come utilizzarlo.
Utilizzo dell'aiuto di autenticazione
Sezione intitolata “Utilizzo dell’aiuto di autenticazione”La authenticateWithGoogleSupabase 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
contextSezione intitolata “Come Funziona” Per una spiegazione dettagliata di come funziona il flusso di autenticazione, compresa la generazione di nonce, la validazione di JWT e l'accesso a Supabase, vedere la sezione .
Come Funziona
nella Guida di configurazione generaleImportanti Avvertenze
Sezione intitolata “Importanti Avvertenze”ISSUE DI CACHE DEL NONCE DI iOS
Sul sistema operativo iOS, Google Sign-In può memorizzare i token, il che può causare il fallimento della validazione del nonce. Il validateJWTToken La 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 riprova una volta
- Gestione degli Errori: Se anche la riprova fallisce, viene restituito un errore
Perché succede?: Google Sign-In di iOS 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 loggando fuori e riprovando, il che costringe Google a generare un nuovo token con il nonce corretto.
Soluzione Manuale (se la riprova automatica non funziona):
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Ciò assicura di ottenere un nuovo token con il nonce corretto.
Per la documentazione completa del code vedere la sezione Documentazione completa del Code nella sezione Impostazioni Generali.
Nota Importante
Sezione intitolata "Nota Importante"Gestione del Nonce
Sezione intitolata "Gestione del Nonce"L'implementazione del nonce segue il pattern dalla Documentazione di reattiva Google Sign In:
rawNonceva a SupabasesignInWithIdToken()- 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 nei Google Sign-In APIs
Mecanismo di Risorsa Automatica di Ricitazione
Sottosezione intitolata “Mecanismo di Risorsa Automatica di Ricitazione”La authenticateWithGoogleSupabase funzione include un retry parametro:
- Prima chiamata (
retry=falseSe la validazione fallisce, si esce automaticamente e si riprova una volta - Chiamata di riprova (
retry=trueSe la validazione fallisce nuovamente, restituisce immediatamente un errore
Questo gestisce automaticamente il problema di caching dei token per iOS.
Risolvere i problemi
Sezione intitolata “Risolvere i problemi”Se la autenticazione fallisce:
- Errore di nonce: La funzione riprova automaticamente - controlla i log del console per i dettagli. Se persiste, esegui l'accesso manuale prima
- Audience non valida: Verifica che gli ID del client Google corrispondano in entrambi Google Cloud Console e Supabase (entrambi gli ID del client iOS e Web)
- La validazione del token fallisce: Assicurati di utilizzare
mode: 'online'il client in chiamata di inizializzazione per ottenere un idToken - La configurazione di Info.plist: Assicurati che Info.plist abbia i corretti schemi di URL e GIDClientID
- Rivedi l' esempio di applicazione code per riferimento
Continua da Supabase Google Login on iOS
Se stai utilizzandoSupabase Google Login on iOS Se stai utilizzando Supabase Google Login on iOS per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzare @capgo/capacitor-login-social per la capacità nativa in Utilizzare @capgo/capacitor-login-social Utilizzare @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social Utilizzare @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey Utilizzare @capgo/capacitor-biometric-nativo per il dettaglio di implementazione in @capgo/capacitor-biometric-nativo, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.