>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Go

Come Supabase Auth Facilita la Vita degli Sviluppatori e Perché Non È Solo un Clone di GoTrue

Conosci quella sensazione quando inizi un nuovo progetto e ti rendi conto che devi configurare di nuovo la registrazione, il recupero della password e la verifica dell'email? Per la centesima volta. Sembra più facile optare per un servizio già pronto come Firebase o Supabase Cloud. Ma a volte un progetto richiede il pieno controllo dei dati o un ambiente isolato dove le soluzioni cloud semplicemente non superano i controlli di sicurezza. È allora che Supabase Auth entra in gioco — un server di autenticazione basato su Go che puoi eseguire su un server domestico o in un cluster industriale.

Cos'è esattamente

Se hai lavorato con l'ecosistema Supabase, probabilmente hai usato il loro Auth. Ma non tutti sanno che si tratta di un microservizio open-source separato che può funzionare in modo indipendente. Il team lo ha originariamente basato sul progetto GoTrue di Netlify, ma negli ultimi anni le due soluzioni si sono divergiate così tanto che ora sono due bestie completamente diverse.

Supabase Auth emette token JWT, gestisce gli utenti e si integra perfettamente con Row Level Security (RLS) in PostgreSQL. In sostanza, funge da ponte tra il frontend e il database gestendo tutto il lavoro sporco della verifica dell'identità.

Cosa lo rende efficace nella pratica

Il principale punto di forza del progetto è che copre quasi tutti i requisiti moderni del web out of the box. Non devi scrivere una sola riga di codice per implementare il login tramite Google o Apple.

Login senza password

I link magici e i codici OTP via SMS sono diventati lo standard. Supabase Auth supporta questa funzionalità di default. L'utente inserisce la sua email, riceve un link, clicca — ed è dentro il sistema. Per le app mobile, c'è il supporto per il login con numero di telefono attraverso provider come Twilio o Messagebird.

Elenco esteso di provider OAuth

Ce ne sono oltre una dozzina disponibili: dai classici come Google, Facebook e GitHub a opzioni più specializzate come Discord, Notion, Slack e persino WorkOS per le esigenze enterprise. La configurazione si riduce all'aggiunta di un paio di variabili d'ambiente con il Client ID e il Secret.

Rotazione dei token di refresh

Questa è una funzionalità di sicurezza importante. Il server può rilevare quando i vecchi token di refresh vengono riutilizzati. Se qualcuno ruba un token e tenta di scambiarlo, il sistema lo intercetta e invalida l'intera catena di sessioni per quell'utente. È un piccolo dettaglio che previene incidenti seri.

Compatibilità con Postgres

Dato che il progetto è nato all'interno di Supabase, è ottimizzato per PostgreSQL. Non si limita a memorizzare gli utenti in una tabella — abilita una logica complessa di controllo degli accessi a livello di riga. Non devi controllare user_id in ogni richiesta API al database — Postgres lo gestisce automaticamente in base al JWT emesso da questo server.

Come funziona sotto il cofano

Il progetto è scritto in Go, il che lo rende molto leggero e veloce. Ha bisogno solo di un database PostgreSQL per funzionare.

Un dettaglio interessante sulle migrazioni: vengono applicate automaticamente all'avvio del binary. Questo è comodo per i container Docker — aggiorni l'immagine, riavvii, e il database è pronto.

Se decidi di self-hostare questo, ecco un esempio di come avviare rapidamente un ambiente con Docker:

# Собираем бинарник
make build

# Запускаем инфраструктуру
make dev

Dopo di questo, avrai un'API in esecuzione sulla porta 9999, pronta a gestire le richieste.

Insidie della configurazione

La configurazione tramite variabili d'ambiente è standard per i microservizi, e ce ne sono davvero molte qui. Puoi configurare tutto: dalla lunghezza minima della password ai requisiti di complessità dei caratteri.

Per esempio, se vuoi disabilitare la registrazione normale e permettere solo l'accesso su invito, imposta semplicemente:

GOTRUE_DISABLE_SIGNUP=true

E se hai bisogno di abilitare il captcha (hCaptcha e Cloudflare Turnstile sono supportati), passa semplicemente le chiavi segrete attraverso le variabili SECURITY_CAPTCHA_SECRET.

Perché non dovresti dimenticarti del proxy

Il README ha un avvertimento onesto dagli sviluppatori: eseguire un server di autenticazione in produzione non è per chi ha il cuore debole. Il team raccomanda fortemente di mettere Supabase Auth dietro un proxy TLS (Nginx, Kong o bilanciatori di carico cloud).

Una nota importante per chi pianifica una migrazione: Supabase Auth ha eliminato alcune funzionalità dall'originale GoTrue. Per esempio, hanno rimosso il supporto nativo multi-tenant tramite la tabella instances. Se la tua architettura si basa su questo, dovrai o ripensare l'approccio o restare con l'originale GoTrue di Netlify.

Per chi è

Vedo tre scenari principali dove questo progetto è indispensabile:

  1. Progetti self-hosted: quando stai costruendo il tuo sostituto di Firebase sui tuoi server.
  2. Soluzioni enterprise: quando la policy di sicurezza aziendale vieta di memorizzare i dati utente in un cloud di terze parti.
  3. Sviluppo locale: anche se usi Supabase Cloud, avere la possibilità di eseguire un server di autenticazione identico offline è impagabile.

Supabase Auth è uno strumento solido che elimina la necessità di reinventare la ruota per l'autorizzazione. Sì, la documentazione nel README può sembrare secca e piena di un elenco di endpoint, ma il codice stesso è stabile e provato da milioni di utenti in Supabase Cloud. Se hai bisogno di un gateway affidabile per gli utenti che funziona con JWT e Postgres, è probabilmente una delle migliori soluzioni in Go disponibili oggi.

Progetti correlati