Firebase Auth: implementare login social

Firebase Auth: implementare login social

Firebase Authentication offre un sistema di login pronto per Google, Apple, Facebook, Microsoft, Twitter, GitHub, telefono ed email. Riduce drasticamente il tempo di sviluppo del flusso di autenticazione e gestisce sicurezza, refresh token e MFA. Vediamo come integrare i provider più usati su app mobile.

Setup provider

In console Firebase abilita i provider desiderati. Per Google e Apple basta un toggle; per Facebook serve App ID e App Secret, per Microsoft il tenant ID, per provider generici OAuth puoi configurarli manualmente. Su iOS aggiungi le URL scheme nel plist; su Android configura SHA-1 e SHA-256 nella console.

Sign in with Apple

Obbligatorio su iOS se offri altri login social. Apple impone il proprio bottone con design specifico e richiede di gestire correttamente il consenso al nome ed email. Implementa il revoke token quando l'utente cancella l'account.

Sicurezza e MFA

Firebase Auth supporta multifactor authentication via SMS e TOTP. Abilita reCAPTCHA Enterprise o App Check per prevenire abusi sui flussi pubblici. Usa custom claim per assegnare ruoli e permessi.

Custom claims e ruoli

Per gestire ruoli (admin, premium, free) usa Custom Claims via Firebase Admin SDK. I claim sono incorporati nel JWT del cliente e validati lato Security Rules. Limite di 1000 bytes per claim set. Aggiorna i claim dal backend dopo upgrade/downgrade, e l'app li riceve al refresh successivo del token.

Anonymous Auth e linking

Permette di creare utenti anonimi che poi diventano autenticati tramite linkWithCredential. Mantiene dati creati nella sessione guest dopo registrazione. UX preferita per onboarding senza friction: l'utente puo provare l'app e registrarsi solo dopo aver visto valore.

Multi-factor authentication

Firebase Auth supporta MFA via SMS o TOTP. Obbligatorio per app finanziarie, sanitarie, governative. Richiede piano Identity Platform (upgrade da Auth standard). Implementa fallback codici di recupero per non bloccare utenti che perdono il secondo fattore.

Account deletion

Sia Apple sia Google obbligano a fornire deletion account in-app, non solo via email. Implementa un flusso che chiama deleteUser via SDK e propaga la cancellazione a Firestore, Storage, eventuali backend. Conserva log per audit ma non i dati personali oltre il periodo legale richiesto.

Email enumeration protection

Da Firebase Auth update 2023, le API non rivelano più se un'email esiste o no (protezione contro enumeration attack). I metodi createUserWithEmailAndPassword e fetchSignInMethodsForEmail comportano errori volutamente generici. Aggiorna i flussi UX di "forgot password" e "sign up" per gestire questi errori senza compromettere la sicurezza.

Phone Auth e fraud

Phone Auth e vulnerabile a SMS pumping (abuso che genera costi alti). Abilita reCAPTCHA Enterprise e App Check come difesa. Monitora costi SMS via Firebase Billing. Considera Email link auth come alternativa per regions a rischio. Imposta quote di rate limit nelle Cloud Functions per fermare abuse precoci.

Procedura passo-passo

  1. Abilita i provider in console Firebase.
  2. Aggiungi gli SDK necessari (FirebaseAuth + librerie social).
  3. Configura URL scheme e SHA per ogni piattaforma.
  4. Implementa i bottoni di login con i flow ufficiali di ciascun provider.
  5. Gestisci correttamente token e refresh.
  6. Implementa Sign in with Apple se l'app espone altri social login.
  7. Attiva MFA per utenti sensibili o admin.

Social provider gotchas

Google Sign-In Android richiede SHA-1 e SHA-256 sia per debug sia per release (Play App Signing). Facebook Login richiede review periodica per scopes oltre ai default (profile, email). Apple Sign-In e l'unico con flow REST-based per server validation. Microsoft richiede setup di app registration in Azure AD con redirect URI corretti.

Anonymous to authenticated

Flow tipico: utente esplora app come anonymous (auto-login), accumula dati (preferenze, draft, items), decide di registrarsi -> linkWithCredential converte anonymous in authenticated mantenendo tutti i dati. UX moderna che riduce friction. Implementa fallback per "email già esistente" gestendo la fusione di account con cura.

Errori comuni e come risolverli

  • SHA-1 mancante: Google Sign-In non funziona su Android.
  • URL scheme errato: il redirect torna a una pagina vuota.
  • Sign in with Apple assente: rejection certa su App Store.
  • Revoke token non implementato: viola le linee guida Apple sulla cancellazione account.
  • Permessi Facebook scaduti: rinnova la App Review ogni 12 mesi.

Domande frequenti

D: Posso usare Firebase Auth senza Firestore?
R: Si, e indipendente. Spesso si combina con backend custom per i dati di profilo.

D: Supporta passkey?
R: Le passkey si integrano tramite custom token e WebAuthn, non sono native.

D: Quanto costa?
R: Fino a 50.000 MAU sono gratuiti, oltre si entra nei limiti del piano Blaze.

D: Posso migrare utenti da Auth0 a Firebase Auth?
R: Si, tramite Firebase Auth Admin SDK puoi importare utenti con password hash compatible.

Best practice di sicurezza

MFA per admin e utenti high-value. App Check su tutti gli endpoint pubblici. Rate limiting via Cloud Functions per prevenire abuse. Monitoring di login failure rate per individuare brute force. Logging di security events (failed login, password reset, account changes) per audit. Sicurezza e processo continuo, non setup una tantum.

Hai bisogno di aiuto?

Se vuoi sviluppare la tua app con G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?