Vai al contenuto

Supabase Google Login su Android

GitHub

Questa guida ti aiuterà a integrare Google Sign-In con Supabase Authentication su Android. Si assume che tu abbia già completato:

L'implementazione completa è disponibile nella dell'app di esempio supabaseAuthUtils.ts file. Questa guida spiega i concetti chiave e come usarlo.

L'oggetto authenticateWithGoogleSupabase 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);
}

Per una spiegazione dettagliata del flusso di autenticazione, inclusa la generazione del nonce, la validazione del JWT e l'accesso tramite Supabase, consulta la sezione How It Works nella guida General Setup.

Per la documentazione completa di code, consulta la Completa la sezione Code Reference nella guida alla configurazione generale.

L'implementazione del nonce segue il pattern della documentazione di React Native Google Sign In:

  • rawNonce viene inviato a Supabase signInWithIdToken()
  • Supabase crea un hash di rawNonce e lo confronta con il nonceDigest che è incluso nell'ID token di Google Sign-In
  • nonceDigest (hash SHA-256, codificato in esadecimale) viene inviato a nonce parametro nelle API di Google Sign-In

L'implementazione include una logica di retry automatico:

  • Se la validazione del JWT fallisce al primo tentativo, effettua il logout e riprova una volta
  • Gestisce i casi in cui i token in cache potrebbero avere nonce errati
  • Se anche il retry fallisce, viene restituito un errore

Se l'autenticazione fallisce:

  • Audience non valida: Verifica che i Google Client ID corrispondano sia in Google Cloud Console che in Supabase
  • Errore di mismatch del nonce: Controlla i log della console - la funzione riproverà automaticamente, ma puoi effettuare il logout manualmente se necessario
  • Validazione del token fallita: Assicurati di usare mode: 'online' nella chiamata di initialize per ottenere un idToken
  • Controlla il app di esempio code come riferimento

Se stai usando Supabase Google Login su Android per pianificare i flussi di autenticazione e account, collegalo con Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @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 sull'implementazione dell'autenticazione a due fattori.