>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

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

Wie Supabase Auth das Leben eines Entwicklers erleichtert und warum es nicht nur ein GoTrue-Klon ist

Kennen Sie das Gefühl, wenn Sie ein neues Projekt starten und realize, dass Sie wieder Registrierung, Passwort-Wiederherstellung und E-Mail-Verifizierung einrichten müssen? Zum hundertsten Mal. Es scheint einfacher, einfach einen fertigen Service wie Firebase oder Supabase Cloud zu nehmen. Aber manchmal erfordert ein Projekt die vollständige Kontrolle über Daten oder eine geschlossene Umgebung, in der Cloud-Lösungen einfach keine Sicherheitsaudits bestehen. Genau hier kommt Supabase Auth ins Spiel — ein Go-basierter Authentifizierungsserver, den Sie auf einem Heimserver oder in einem industriellen Cluster betreiben können.

Was genau ist es

Wenn Sie mit dem Supabase-Ökosystem gearbeitet haben, haben Sie wahrscheinlich deren Auth genutzt. Aber nicht jeder weiß, dass es ein separates Open-Source-Microservice ist, das unabhängig laufen kann. Das Team basierte es ursprünglich auf dem GoTrue-Projekt von Netlify, aber im Laufe der letzten Jahre haben sich beide so weit auseinanderentwickelt, dass es jetzt zwei verschiedene Paar Schuhe sind.

Supabase Auth gibt JWT-Token aus, verwaltet Benutzer und arbeitet gut mit Row Level Security (RLS) in PostgreSQL zusammen. Im Wesentlichen ist es eine Brücke zwischen Ihrem Frontend und der Datenbank, die die gesamte schmutzige Arbeit der Identitätsverifizierung erledigt.

Was es in der Praxis gut macht

Der Hauptvorteil des Projekts ist, dass es nahezu alle modernen Web-Anforderungen out of the box abdeckt. Sie müssen keine einzige Codezeile schreiben, um eine Anmeldung über Google oder Apple zu implementieren.

Passwortlose Anmeldung

Magic Links und SMS-OTP-Codes sind zum Standard geworden. Supabase Auth unterstützt dies standardmäßig. Der Benutzer gibt seine E-Mail-Adresse ein, erhält einen Link, klickt darauf — und ist im System. Für mobile Apps gibt es eine Anmeldung per Telefonnummer über Anbieter wie Twilio oder Messagebird.

Umfangreiche OAuth-Anbieterliste

Es gibt über ein Dutzend verfügbare Optionen: von den Klassikern wie Google, Facebook und GitHub bis zu spezialisierteren Optionen wie Discord, Notion, Slack und sogar WorkOS für Enterprise-Anforderungen. Die Konfiguration beschränkt sich auf das Hinzufügen einiger Umgebungsvariablen mit der Client-ID und dem Secret.

Refresh-Token-Rotation

Dies ist ein wichtiges Sicherheitsfeature. Der Server kann erkennen, wenn alte Refresh-Token wiederverwendet werden. Wenn jemand ein Token stiehlt und versucht, es einzulösen, erkennt das System dies und macht die gesamte Sitzungskette für diesen Benutzer ungültig. Es ist ein kleines Detail, das ernsthafte Vorfälle verhindert.

Postgres-Kompatibilität

Da das Projekt innerhalb von Supabase entstanden ist, ist es für PostgreSQL optimiert. Es speichert nicht nur Benutzer in einer Tabelle — es ermöglicht komplexe zeilenbasierte Zugriffskontrolllogik. Sie müssen nicht in jeder API-Anfrage an die Datenbank nach user_id prüfen — Postgres erledigt dies automatisch basierend auf dem vom Server ausgestellten JWT.

Wie es unter der Haube funktioniert

Das Projekt ist in Go geschrieben, was es sehr leichtgewichtig und schnell macht. Es braucht nur eine PostgreSQL-Datenbank zum Laufen.

Ein interessantes Detail zu Migrations: Sie werden automatisch angewendet, wenn die Binary startet. Das ist praktisch für Docker-Container — Image aktualisieren, neu starten, und die Datenbank ist bereit.

Wenn Sie sich entscheiden, dies selbst zu hosten, hier ein Beispiel, wie Sie schnell eine Umgebung mit Docker aufsetzen:

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

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

Danach haben Sie einen API auf Port 9999 laufen, bereit, Anfragen zu bearbeiten.

Konfigurations-Fallstricke

Die Konfiguration über Umgebungsvariablen ist Standard für Microservices, und es gibt hier wirklich viele davon. Sie können alles konfigurieren: von der Mindestpasswortlänge bis zu Zeichensatzkomplexitätsanforderungen.

Wenn Sie beispielsweise die normale Registrierung deaktivieren und nur eine Einladungsanmeldung erlauben möchten, setzen Sie einfach:

GOTRUE_DISABLE_SIGNUP=true

Und wenn Sie Captcha aktivieren müssen (hCaptcha und Cloudflare Turnstile werden unterstützt), übergeben Sie einfach die Secret-Keys über die SECURITY_CAPTCHA_SECRET-Variablen.

Warum Sie den Proxy nicht vergessen sollten

Die README enthält eine ehrliche Warnung der Entwickler: Einen Authentifizierungsserver in der Produktion zu betreiben, ist nichts für schwache Nerven. Das Team empfiehlt dringend, Supabase Auth hinter einem TLS-Proxy (Nginx, Kong oder Cloud-Load-Balancer) zu betreiben.

Ein wichtiger Hinweis für diejenigen, die eine Migration planen: Supabase Auth hat einige Features des ursprünglichen GoTrue entfernt. Zum Beispiel haben sie die native Multi-Tenancy-Unterstützung über die instances-Tabelle entfernt. Wenn Ihre Architektur darauf angewiesen ist, müssen Sie entweder Ihren Ansatz überdenken oder beim ursprünglichen GoTrue von Netlify bleiben.

Für wen ist das gedacht

Ich sehe drei Hauptszenarien, in denen dieses Projekt unverzichtbar ist:

  1. Self-hosted Projekte: wenn Sie Ihren eigenen Firebase-Ersatz auf Ihren eigenen Servern aufbauen.
  2. Enterprise-Lösungen: wenn die Sicherheitsrichtlinie des Unternehmens die Speicherung von Benutzerdaten in einer Drittanbieter-Cloud verbietet.
  3. Lokale Entwicklung: selbst wenn Sie Supabase Cloud nutzen, ist die Möglichkeit, einen identischen Authentifizierungsserver offline laufen zu lassen, von unschätzbarem Wert.

Supabase Auth ist ein solides Tool, das die Notwendigkeit beseitigt, das Rad für die Autorisierung neu zu erfinden. Ja, die README-Dokumentation mag trocken und überladen mit einer Endpunktliste erscheinen, aber der Code selbst ist stabil und durch Millionen von Benutzern in Supabase Cloud erprobt. Wenn Sie ein zuverlässiges Gateway für Benutzer benötigen, das mit JWT und Postgres funktioniert, ist es wahrscheinlich eine der besten Lösungen in Go heute.

Ähnliche Projekte