Hoe Supabase Auth het leven van een developer makkelijker maakt en waarom het niet zomaar een GoTrue-kloon is
Herken je dat gevoel wanneer je aan een nieuw project begint en je beseft dat je weer registratie, wachtwoordherstel en e-mailverificatie moet opzetten? Voor de zoveelste keer. Het lijkt makkelijker om gewoon een kant-en-klaar service te pakken zoals Firebase of Supabase Cloud. Maar soms vereist een project volledige controle over data of een gesloten omgeving waar cloudoplossingen simpelweg niet door security-audits komen. Dat is het moment waarop Supabase Auth ten tonele verschijnt — een op Go gebaseerde authenticatieserver die je kunt draaien op een thuisserver of in een industrieel cluster.
Wat Is Het Precies
Als je met het Supabase-ecosysteem hebt gewerkt, heb je waarschijnlijk hun Auth gebruikt. Maar niet iedereen weet dat het een aparte open-source microservice is die onafhankelijk kan draaien. Het team heeft het oorspronkelijk gebaseerd op Netlify's GoTrue-project, maar de afgelopen jaren zijn ze zo ver uit elkaar gegroeid dat het nu twee totaal verschillende beesten zijn.
Supabase Auth geeft JWT-tokens uit, beheert gebruikers en werkt goed samen met Row Level Security (RLS) in PostgreSQL. Kortom, het is een brug tussen je frontend en database die al het vervelende werk van identiteitsverificatie afhandelt.
Wat Maakt Het Goed In De Praktijk
Het grote voordeel van dit project is dat het vrijwel alle moderne webvereisten out-of-the-box dekt. Je hoeft geen enkele regel code te schrijven om inloggen via Google of Apple te implementeren.
Wachtwoordloos Inloggen
Magic links en SMS OTP-codes zijn de standaard geworden. Supabase Auth ondersteunt dit standaard. De gebruiker voert zijn e-mailadres in, ontvangt een link, klikt erop — en is ingelogd in het systeem. Voor mobiele apps is er ondersteuning voor inloggen met telefoonnummer via providers zoals Twilio of Messagebird.
Uitgebreide OAuth Providerlijst
Er zijn er meer dan een dozijn beschikbaar: van de klassiekers zoals Google, Facebook en GitHub tot meer gespecialiseerde opties zoals Discord, Notion, Slack en zelfs WorkOS voor enterprise-behoeften. Configuratie komt neer op het toevoegen van een paar omgevingsvariabelen met de Client ID en Secret.
Refresh Token Rotatie
Dit is een belangrijke beveiligingsfunctie. De server kan detecteren wanneer oude refresh tokens opnieuw worden gebruikt. Als iemand een token steelt en probeert het te exchange, pakt het systeem dit op en maakt de hele sessieketen voor die gebruiker ongeldig. Het is een klein detail dat ernstige incidenten voorkomt.
Postgres-compatibiliteit
Omdat het project binnen Supabase is ontstaan, is het geoptimaliseerd voor PostgreSQL. Het slaat niet alleen gebruikers op in een tabel — het maakt complexe rij-level toegangscontrollelogica mogelijk. Je hoeft niet iedere API-aanvraag naar de database user_id te controleren — Postgres handelt dit automatisch af op basis van de JWT die door deze server wordt uitgegeven.
Hoe Het Onder De Motorkap Werkt
Het project is geschreven in Go, waardoor het zeer lichtgewicht en snel is. Het heeft alleen een PostgreSQL-database nodig om te draaien.
Een interessant detail over migraties: ze worden automatisch toegepast wanneer de binary start. Dit is handig voor Docker-containers — update de image, herstart, en de database is klaar.
Als je besluit dit zelf te hosten, hier is een voorbeeld van hoe je snel een omgeving kunt opzetten met Docker:
# Собираем бинарник
make build
# Запускаем инфраструктуру
make dev
Daarna heb je een API draaien op poort 99, klaar om verzoeken af te handelen.
Configuratievalkuilen
Configuratie via omgevingsvariabelen is standaard voor microservices, en er zijn er hier echt veel van. Je kunt alles configureren: van minimale wachtwoordlengte tot vereisten voor tekencomplexiteit.
Als je bijvoorbeeld gewone registratie wilt uitschakelen en alleen uitnodigingslogin wilt toestaan, stel dan gewoon in:
GOTRUE_DISABLE_SIGNUP=true
En als je captcha moet inschakelen (hCaptcha en Cloudflare Turnstile worden ondersteund), geef dan de geheime sleutels door via de SECURITY_CAPTCHA_SECRET variabelen.
Waarom Je De Proxy Niet Moet Vergeten
De README bevat een eerlijke waarschuwing van de ontwikkelaars: een authenticatieserver draaien in productie is niets voor bangelijke developers. Het team raadt sterk aan om Supabase Auth achter een TLS-proxy te plaatsen (Nginx, Kong of cloud load balancers).
Een belangrijke noot voor degenen die een migratie plannen: Supabase Auth heeft sommige functies van het originele GoTrue laten vallen. Zo hebben ze bijvoorbeeld native multi-tenancy-ondersteuning via de instances tabel verwijderd. Als je architectuur hierop leunt, moet je ofwel je aanpak herzien of bij het originele GoTrue van Netlify blijven.
Voor Wie Is Dit
Ik zie drie hoofdscenario's waarin dit project onmisbaar is:
- Zelf-gehoste projecten: wanneer je je eigen Firebase-vervanging bouwt op je eigen servers.
- Enterprise-oplossingen: wanneer het beveiligingsbeleid van het bedrijf het opslaan van gebruikersgegevens in een cloud van derden verbiedt.
- Lokale ontwikkeling: zelfs als je Supabase Cloud gebruikt, is de mogelijkheid om een identieke authenticatieserver offline te draaien van onschatbare waarde.
Supabase Auth is een solide tool die de noodzaak wegneemt om het wiel opnieuw uit te vinden voor autorisatie. Ja, de README-documentatie kan droog overkomen en overladen zijn met een lijst van endpoints, maar de code zelf is stabiel en bewezen door miljoenen gebruikers in Supabase Cloud. Als je een betrouwbare gateway voor gebruikers nodig hebt die werkt met JWT en Postgres, is het waarschijnlijk een van de beste oplossingen in Go van dit moment.
Gerelateerde projecten