Saltar al contenido

Supabase Google Login en Android

GitHub

Esta guía te ayudará a integrar Google Sign-In con Supabase Authentication en Android. Se asume que ya has completado:

La implementación completa está disponible en la de la app de ejemplo supabaseAuthUtils.ts archivo. Esta guía explica los conceptos clave y cómo usarlo.

El authenticateWithGoogleSupabase función gestiona todo el flujo de autenticación:

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);
}

Para una explicación detallada del flujo de autenticación, incluyendo la generación de nonce, validación de JWT y el inicio de sesión en Supabase, consulta la sección How It Works en la guía de General Setup.

Para la referencia completa de code, consulta la Completa la sección de referencia de Code en la guía de Configuración General.

La implementación del nonce sigue el patrón de la documentación de React Native Google Sign In:

  • rawNonce se dirige a Supabase signInWithIdToken()
  • Supabase genera un hash de rawNonce y lo compara con el nonceDigest que se incluye en el ID token de Google Sign-In
  • nonceDigest (hash SHA-256, codificado en hex) se envía a nonce parámetro en las APIs de Google Sign-In

La implementación incluye lógica de reintento automático:

  • Si la validación del JWT falla al primer intento, cierra la sesión e intenta una vez más
  • Esto cubre los casos en que los tokens en caché podrían tener nonces incorrectos
  • Si el reintento también falla, se devuelve un error

Si la autenticación falla:

  • Audience inválido: Verifica que tus Google Client IDs coincidan tanto en Google Cloud Console como en Supabase
  • Error de nonce mismatch: Revisa los logs de la consola; la función reintentará automáticamente, pero puedes cerrar sesión manualmente si es necesario
  • Fallo en la validación del token: Asegúrate de estar usando mode: 'online' en la llamada a initialize para obtener un idToken
  • Revisa la app de ejemplo code como referencia

Si estás usando Supabase Google Login en Android para planificar flujos de autenticación y cuentas, conéctalo con Uso de @capgo/capacitor-social-login para la funcionalidad nativa en Uso de @capgo/capacitor-social-login, @capgo/capacitor-social-login para el detalle de implementación en @capgo/capacitor-social-login, @capgo/capacitor-passkey para los detalles de implementación en @capgo/capacitor-passkey, @capgo/capacitor-native-biometric para los detalles de implementación en @capgo/capacitor-native-biometric, y Autenticación de dos factores para los detalles de implementación en la autenticación de dos factores.