
New releaseSep 10, 2026
auth v2.197.0
Eine JWT-basierte API zur Verwaltung von Benutzern und Ausstellung von JWT-Tokens
Auth - Authentifizierung und Benutzerverwaltung von Supabase
Auth ist ein in Go geschriebener Benutzerverwaltungs- und Authentifizierungsserver, der Funktionen von Supabase unterstützt, wie zum Beispiel:
- Ausstellung von JWTs
- Row Level Security mit PostgREST
- Benutzerverwaltung
- Anmeldung mit E-Mail, Passwort, Magic Link, Telefonnummer
- Anmeldung mit externen Anbietern (Google, Apple, Facebook, Discord, ...)
Es basiert ursprünglich auf der hervorragenden GoTrue-Codebasis von Netlify, jedoch haben sich beide in Bezug auf Funktionen und Fähigkeiten erheblich auseinanderentwickelt.
Wenn du zum Projekt beitragen möchtest, wirf bitte einen Blick auf den Leitfaden für Mitwirkende.
Inhaltsverzeichnis
Schnellstart
Erstelle eine .env-Datei, um deine eigenen benutzerdefinierten Umgebungsvariablen zu speichern. Siehe example.env
- Starte die lokale Postgres-Datenbank in einem Postgres-Container:
docker-compose -f docker-compose-dev.yml up postgres - Erstelle die Auth-Binärdatei:
make build. Du solltest eine Ausgabe wie diese sehen:```bash go build -ldflags "-X github.com/supabase/auth/cmd.Version=git rev-parse HEAD" GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/supabase/auth/cmd.Version=git rev-parse HEAD" -o gotrue-arm64
3. Führen Sie die Auth-Binärdatei aus: `./auth`
### Wenn Sie Docker installiert haben
Erstellen Sie eine `.env.docker`-Datei, um Ihre eigenen benutzerdefinierten Umgebungsvariablen zu speichern. Siehe [`example.docker.env`](https://github.com/supabase/auth/blob/master/example.docker.env)
1. `make build`
2. `make dev`
3. `docker ps` sollte zwei Docker-Container anzeigen (`auth-auth-1` und `auth-postgres-1`)
4. Das war's! Besuchen Sie den [Health-Check-Endpunkt](http://localhost:9999/health), um zu bestätigen, dass auth läuft.
## Produktionsbetrieb
Einen Authentifizierungsserver in der Produktion zu betreiben, ist keine leichte Aufgabe. Wir empfehlen die Verwendung von [Supabase Auth](https://supabase.com/auth), das regelmäßig Sicherheitsupdates erhält.
Andernfalls stellen Sie bitte sicher, dass Sie einen Prozess einrichten, um zeitnah auf die neueste Version zu aktualisieren. Sie können dies tun, indem Sie diesem Repository folgen, insbesondere den Abschnitten [Releases](https://github.com/supabase/auth/releases) und [Security Advisories](https://github.com/supabase/auth/security/advisories).
### Abwärtskompatibilität
Auth verwendet das [Semantic Versioning](https://semver.org)-Schema. Hier sind einige weitere Erläuterungen zu den Garantien der Abwärtskompatibilität:
**Go-API-Kompatibilität**
Auth ist nicht dafür gedacht, als Go-Bibliothek verwendet zu werden. Es gibt keine Garantien für die Abwärtskompatibilität der API, wenn es auf diese Weise verwendet wird, unabhängig davon, welche Versionsnummer sich ändert.
**Patch**
Änderungen an der Patch-Version garantieren Abwärtskompatibilität mit:
- Datenbankobjekten (Tabellen, Spalten, Indizes, Funktionen).
- REST-API
- JWT-Struktur
- Konfiguration
Garantierte Beispiele:
- Eine Spalte wird ihren Typ nicht ändern.
- Eine Tabelle wird ihren Primärschlüssel nicht ändern.
- Ein Index wird nicht entfernt.
- Eine Eindeutigkeitsbeschränkung wird nicht entfernt.
- Eine REST-API wird nicht entfernt.
- Parameter für REST-APIs funktionieren weiterhin äquivalent wie zuvor (oder besser, wenn ein Fehler behoben wurde).
- Die Konfiguration wird sich nicht ändern.
Nicht garantierte Beispiele:
- Eine Tabelle kann neue Spalten erhalten.
- Spalten in einer Tabelle können neu angeordnet werden.
- Nicht-eindeutige Constraints können entfernt werden (Datenbankprüfungen, NULL, Standardwerte).
- JWTs können neue Eigenschaften erhalten.
**Minor**
Änderungen an der Minor-Version garantieren Abwärtskompatibilität mit:
- REST-API
- JWT-Struktur
- Konfiguration
Ausnahmen von diesen Garantien werden nur dann gemacht, wenn schwerwiegende Sicherheitsprobleme gefunden werden, die auf keine andere Weise behoben werden können.
Garantierte Beispiele:
- Bestehende APIs können als veraltet markiert werden, funktionieren aber für die nächsten paar Minor-Versionen weiter.
- Konfigurationsänderungen können als veraltet markiert werden, funktionieren aber für die nächsten paar Minor-Versionen weiter.
- Bereits ausgestellte JWTs werden akzeptiert, aber neue JWTs können eine andere Struktur haben (in der Regel aber ähnlich).
Nicht garantierte Beispiele:
- Entfernung von JWT-Feldern nach einem Deprecation-Hinweis.
- Entfernung bestimmter APIs nach einem Deprecation-Hinweis.
- Entfernung der Anmeldung mit externen Anbietern nach einem Deprecation-Hinweis.
- Löschung, Kürzung, erhebliche Schemaänderungen an Tabellen, Indizes, Sichten, Funktionen.
Wir streben an, einen Deprecation-Hinweis in den Ausführungsprotokollen für mindestens zwei Major-Versionen oder zwei Wochen bereitzustellen, wenn mehrere Versionen veröffentlicht werden. Die Kompatibilität wird garantiert, solange der Hinweis aktiv ist.
**Major**
Änderungen an der Major-Version garantieren keine Abwärtskompatibilität mit früheren Versionen.
### Geerbte Funktionen
Bestimmte geerbte Funktionen aus der Netlify-Codebasis werden von Supabase nicht unterstützt und können in Zukunft ohne vorherige Ankündigung entfernt werden. Dies ist eine umfassende Liste dieser Funktionen:
1. Mandantenfähigkeit (Multi-Tenancy) über die Tabelle `instances`, d.h. den Konfigurationsparameter `GOTRUE_MULTI_INSTANCE_MODE`.
2. Systembenutzer (Zero-UUID-Benutzer).
3. Super-Admin über die Spalte `is_super_admin`.
4. Gruppeninformationen in JWTs über `GOTRUE_JWT_ADMIN_GROUP_NAME` und andere Konfigurationsfelder.
5. JWT-Signierung. Supabase Auth unterstützt asymmetrische Schlüssel (standardmäßig RS256; ECC/Ed25519 optional). HS256 wird weiterhin aus Kompatibilitätsgründen unterstützt, aber die Migration zu asymmetrischen Schlüsseln wird empfohlen, um Validierung und Rotation zu vereinfachen. Zukünftige Entfernungen (Deprecations) werden im Changelog angekündigt. Weitere Details finden Sie im [Leitfaden zu JWT-Signaturschlüsseln](https://supabase.com/docs/guides/auth/signing-keys) und im [JWTs-Leitfaden](https://supabase.com/docs/guides/auth/jwts).
Beachten Sie, dass dies keine vollständige Liste ist und sie sich ändern kann.
### Best Practices beim Selbsthosting
Hier sind einige Best Practices, die Sie beim Selbsthosting befolgen sollten, um die Abwärtskompatibilität mit Auth sicherzustellen:
1. Ändern Sie nicht das von Auth verwaltete Schema. Sie können alle Migrationen im Verzeichnis `migrations` einsehen.
2. Verlassen Sie sich nicht auf das Schema und die Datenstruktur in der Datenbank. Verwenden Sie immer Auth-APIs und JWTs, um Informationen über Benutzer abzuleiten.
3. Führen Sie Auth immer hinter einem TLS-fähigen Proxy aus, z. B. einem Load Balancer, CDN, nginx oder anderer ähnlicher Software.
## Konfiguration
Sie können Auth entweder über eine Konfigurationsdatei namens `.env`, über Umgebungsvariablen oder eine Kombination aus beidem konfigurieren. Umgebungsvariablen haben das Präfix `GOTRUE_` und haben immer Vorrang vor Werten, die über die Datei bereitgestellt werden.
### Top-Level```properties
GOTRUE_SITE_URL=https://example.netlify.com/
SITE_URL - string erforderlich