Vai al contenuto

Introduzione all'integrazione con Supabase

GitHub

Questo tutorial ti guiderà nella configurazione dell'autenticazione Supabase con il plugin Capacitor Social Login. Questa integrazione ti consente di utilizzare i provider di social login nativi (Google, Apple, Facebook, Twitter) sulle piattaforme mobili, sfruttando Supabase Auth per l'autenticazione backend e PostgreSQL per l'archiviazione dei dati.

  • Come configurare l'autenticazione Supabase
  • Come integrare il plugin Capacitor Social Login con Supabase Auth
  • Configurazione specifica per Android, iOS e Web
  • Come gestire i nonce in modo sicuro per Supabase

Prima di iniziare, assicurati di avere:

  1. Un progetto Supabase

    • Crea un progetto su Dashboard di Supabase
    • Abilita il provider Google OAuth
    • Ottieni l'URL del progetto Supabase e la chiave anon
  2. Supabase JS SDK

    • Installa Supabase nel tuo progetto:
      Finestra del terminale
      npm install @supabase/supabase-js
  3. Un progetto Capacitor

    • Un'applicazione Capacitor esistente
    • Plugin Capacitor Social Login installato:
      Finestra del terminale
      npm install @capgo/capacitor-social-login
      npx cap sync
  4. Configurazione Google specifica per piattaforma

Un esempio completo e funzionante è disponibile nel repository:

Repository Code: Puoi trovare il repository code qui

L'app di esempio mostra:

  • Autenticazione email/password con Supabase
  • Integrazione Google Sign-In (Android, iOS e Web)
  • Un semplice key-value store usando tabelle PostgreSQL di Supabase
  • Archiviazione di dati specifici per utente con Row Level Security (RLS)

Supabase richiede una gestione speciale del nonce per motivi di sicurezza. L'implementazione segue il documentazione di React Native Google Sign In:

  • Genera una rawNonce (stringa casuale URL-safe)
  • Calcolane l'hash con SHA-256 per ottenere nonceDigest
  • Passa nonceDigest a Google Sign-In
  • Passa rawNonce a Supabase (Supabase ne calcola l'hash internamente per il confronto)

L'implementazione di esempio include la validazione JWT per garantire che:

  • l'audience del token corrisponda ai tuoi Google Client ID configurati
  • il nonce corrisponda al digest atteso
  • Ritenta automatico in caso di errore di validazione (particolarmente importante per iOS)
  • iOS: la cache dei token può causare problemi con il nonce - l'implementazione gestisce questo automaticamente
  • Web: Deve chiamare isLoggedIn() al mount per gestire i redirect OAuth
  • Android: Implementazione standard con configurazione SHA-1 fingerprint

Continua con le guide di configurazione:

Continua da Introduzione all'integrazione di Supabase

Sezione intitolata “Continua da Introduzione all'integrazione di Supabase”

Se stai usando Introduzione all'integrazione con Supabase per pianificare i flussi di autenticazione e account, collegandolo a 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.