Saltar al contenido

Introducción a la integración con Supabase

GitHub

Este tutorial te guiará en la configuración de la autenticación de Supabase con el plugin Capacitor Social Login. Esta integración te permite usar proveedores de inicio de sesión social nativos (Google, Apple, Facebook, Twitter) en plataformas móviles, aprovechando Supabase Auth para la autenticación en el backend y PostgreSQL para el almacenamiento de datos.

  • Cómo configurar la autenticación de Supabase
  • Cómo integrar el plugin Social Login de Capacitor con Supabase Auth
  • Configuración específica para Android, iOS y Web
  • Cómo manejar nonces de forma segura para Supabase

Antes de empezar, asegúrate de tener:

  1. Un proyecto de Supabase

    • Crea un proyecto en Panel de Supabase
    • Habilita el proveedor OAuth de Google
    • Obtén la URL y la clave anon de tu proyecto de Supabase
  2. Supabase JS SDK

    • Instala Supabase en tu proyecto:
      Ventana de terminal
      npm install @supabase/supabase-js
  3. Un proyecto Capacitor

    • Una aplicación Capacitor existente
    • Plugin Capacitor Social Login instalado:
      Ventana de terminal
      npm install @capgo/capacitor-social-login
      npx cap sync
  4. Configuración de Google por plataforma

Tienes un ejemplo completo y funcional en el repositorio:

Repositorio Code: Puedes encontrar el repositorio code aquí

La app de ejemplo muestra:

  • Autenticación por correo electrónico/contraseña con Supabase
  • Integración de Google Sign-In (Android, iOS y Web)
  • Un almacén de clave-valor simple usando tablas PostgreSQL de Supabase
  • Almacenamiento de datos específicos del usuario con Row Level Security (RLS)

Supabase requiere un manejo especial de nonce por seguridad. La implementación sigue el documentación de React Native Google Sign In:

  • Genera un rawNonce (cadena aleatoria segura para URL)
  • Hashealo con SHA-256 para obtener nonceDigest
  • Pasa nonceDigest a Google Sign-In
  • Pasa rawNonce a Supabase (Supabase lo hashea internamente para la comparación)

La implementación de ejemplo incluye validación de JWT para asegurar que:

  • El audience del token coincida con tus Google Client IDs configurados
  • El nonce coincida con el digest esperado
  • Reintento automático ante fallos de validación (crucial en iOS)
  • iOS: El caché de tokens puede causar problemas con el nonce; la implementación lo gestiona automáticamente
  • Web: Se debe llamar a isLoggedIn() al montar para manejar redirecciones OAuth
  • Android: Implementación estándar con configuración del fingerprint SHA-1

Continúa con las guías de configuración:

Iniciar sesión con Apple

Sección titulada “Apple Sign-In”

Continuar desde la introducción a la integración con Supabase

Sección titulada “Continuar desde la introducción a la integración con Supabase”

Si estás usando Introducción a la integración con Supabase para planificar los flujos de autenticación y de cuenta, conéctalo con Uso de @capgo/capacitor-social-login para la capacidad nativa en el uso de @capgo/capacitor-social-login, @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-social-login, @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey, @capgo/capacitor-native-biometric para el detalle de implementación en @capgo/capacitor-native-biometric, y Autenticación de dos factores para el detalle de implementación en la autenticación de dos factores.