Google Login di Supabase su Android
Introduzione
Section titled “Introduzione”Questa guida ti aiuterà a integrare Google Sign-In con l’autenticazione Supabase su Android. Si presume che tu abbia già completato:
- la configurazione di Google Login per Android
- la Configurazione Generale di Google Login per Supabase.
Implementazione
Section titled “Implementazione”L’implementazione completa è disponibile nel file supabaseAuthUtils.ts dell’app di esempio. Questa guida spiega i concetti chiave e come utilizzarlo.
Utilizzo dell’Helper di Autenticazione
Section titled “Utilizzo dell’Helper di Autenticazione”La funzione authenticateWithGoogleSupabase gestisce l’intero flusso di autenticazione:
import { authenticateWithGoogleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithGoogleSupabase();if (result.success) { console.log('Accesso effettuato:', result.user); // Naviga verso la tua area autenticata} else { console.error('Errore:', result.error);}Come Funziona
Section titled “Come Funziona”Per una spiegazione dettagliata di come funziona il flusso di autenticazione, inclusa la generazione del nonce, la validazione JWT e l’accesso a Supabase, consulta la sezione Come Funziona nella guida alla Configurazione Generale.
Per il riferimento completo al codice, consulta la sezione Riferimento Completo al Codice nella guida alla Configurazione Generale.
Note Importanti
Section titled “Note Importanti”Gestione del Nonce
Section titled “Gestione del Nonce”L’implementazione del nonce segue il modello della documentazione React Native Google Sign In:
rawNonceva asignInWithIdToken()di Supabase- Supabase crea un hash di
rawNoncee lo confronta con ilnonceDigestche è incluso nell’ID token di Google Sign-In nonceDigest(hash SHA-256, codificato in esadecimale) va al parametrononcenelle API di Google Sign-In
Retry Automatico
Section titled “Retry Automatico”L’implementazione include una logica di retry automatico:
- Se la validazione JWT fallisce al primo tentativo, effettua il logout e riprova una volta
- Questo gestisce i casi in cui i token memorizzati nella cache potrebbero avere nonce errati
- Se anche il retry fallisce, viene restituito un errore
Risoluzione dei Problemi
Section titled “Risoluzione dei Problemi”Se l’autenticazione fallisce:
- Audience non valido: Verifica che i tuoi Google Client ID corrispondano sia nella Console Google Cloud che in Supabase
- Nonce non corrispondente: Controlla i log della console - la funzione riproverà automaticamente, ma puoi effettuare manualmente il logout prima se necessario
- Validazione del token fallita: Assicurati di utilizzare
mode: 'online'nella chiamata initialize per ottenere un idToken - Consulta il codice dell’app di esempio per riferimento