Vai al contenuto

Introduzione all'Integrazione con Supabase

Questo tutorial ti guiderĆ  attraverso la configurazione dell’autenticazione Supabase con il plugin Capacitor Social Login. Questa integrazione ti consente di utilizzare 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 piattaforma 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 Supabase
    • Abilita il provider OAuth di Google
    • Ottieni l’URL del progetto Supabase e la chiave anon
  2. Supabase JS SDK

    • Installa Supabase nel tuo progetto:
      Terminal window
      npm install @supabase/supabase-js
  3. Un Progetto Capacitor

    • Un’applicazione Capacitor esistente
    • Plugin Capacitor Social Login installato:
      Terminal window
      npm install @capgo/capacitor-social-login
      npx cap sync
  4. Configurazione di Google Specifica per Piattaforma

Un esempio completo funzionante ĆØ disponibile nel repository:

Repository del Codice: Puoi trovare il repository del codice qui

L’app di esempio dimostra:

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

Supabase richiede una gestione speciale del nonce per la sicurezza. L’implementazione segue la documentazione React Native Google Sign In:

  • Genera un rawNonce (stringa casuale URL-safe)
  • Creane un hash con SHA-256 per ottenere nonceDigest
  • Passa nonceDigest a Google Sign-In
  • Passa rawNonce a Supabase (Supabase lo hasha internamente per il confronto)

L’implementazione di esempio include la validazione JWT per garantire:

  • L’audience del token corrisponde ai tuoi Google Client ID configurati
  • Il nonce corrisponde al digest previsto
  • Retry automatico in caso di fallimento della validazione (particolarmente importante per iOS)
  • iOS: Il caching dei token può causare problemi con il nonce - l’implementazione gestisce questo automaticamente
  • Web: Deve chiamare isLoggedIn() al mount per gestire i reindirizzamenti OAuth
  • Android: Implementazione standard con configurazione dell’impronta digitale SHA-1

Continua con le guide di configurazione: