Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
auth — Eine JWT-basierte API zur Verwaltung von Benutzern und Ausstellung von JWT-Tokens | Kitploit
Tools/GitHubGitHub/supabase/auth
Authentifizierung & AutorisierungIdentitätsmanagementIdentitäts- & Zugriffsmanagement (IAM)Authentifizierung
GitHubsupabase/auth

auth

Eine JWT-basierte API zur Verwaltung von Benutzern und Ausstellung von JWT-Tokens

Repository anzeigen
2.5k745vor 3 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Auth - Authentifizierung und Benutzerverwaltung von Supabase

Coverage Status

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
  • Produktionsbetrieb
  • Konfiguration
  • Endpunkte

Schnellstart

Erstelle eine .env-Datei, um deine eigenen benutzerdefinierten Umgebungsvariablen zu speichern. Siehe example.env

  1. Starte die lokale Postgres-Datenbank in einem Postgres-Container: docker-compose -f docker-compose-dev.yml up postgres
  2. 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
root@kitploit:~
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/HEAD/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

Die Basis-URL, unter der Ihre Website erreichbar ist. Wird derzeit in Kombination mit anderen Einstellungen verwendet, um URLs für E-Mails zu erstellen. Jede URI, die denselben Host wie SITE_URL verwendet, ist ein zulässiger Wert für redirect_to-Parameter (siehe /authorize usw.).

URI_ALLOW_LIST - string

Eine durch Kommas getrennte Liste von URIs (z. B. "https://foo.example.com,https://*.foo.example.com,https://bar.example.com"), die als gültige redirect_to-Ziele zugelassen sind. Standardmäßig []. Unterstützt Wildcard-Abgleich durch Globbing. Z. B. erlaubt https://*.foo.example.com https://a.foo.example.com und https://b.foo.example.com. Globbing wird auch für Subdomains unterstützt. Z. B. erlaubt https://foo.example.com/* https://foo.example.com/page1 und https://foo.example.com/page2.

Weitere gängige Glob-Muster finden Sie unter dem folgenden Link.

OPERATOR_TOKEN - string Nur im Multi-Instanz-Modus

Das gemeinsame Geheimnis mit einem Operator (normalerweise Netlify) für diesen Microservice. Wird verwendet, um zu überprüfen, dass Anfragen über den Operator weitergeleitet wurden und die Nutzlastwerte vertrauenswürdig sind.

DISABLE_SIGNUP - bool

Wenn die Registrierung deaktiviert ist, können neue Benutzer nur über Einladungen erstellt werden. Standardmäßig false, alle Registrierungen aktiviert.

GOTRUE_EXTERNAL_EMAIL_ENABLED - bool

Hiermit können Sie E-Mail-Registrierungen deaktivieren (Benutzer können weiterhin externe OAuth-Anbieter zur Registrierung / Anmeldung verwenden)

GOTRUE_EXTERNAL_PHONE_ENABLED - bool

Hiermit können Sie Telefon-Registrierungen deaktivieren (Benutzer können weiterhin externe OAuth-Anbieter zur Registrierung / Anmeldung verwenden)

GOTRUE_RATE_LIMIT_HEADER - string

Header, auf dessen Basis das Rate-Limiting für den /token-Endpunkt erfolgt. Dieser Header sollte von einem vertrauenswürdigen Upstream-Proxy (z. B. Kong oder Envoy) gesetzt werden. Header wie x-forwarded-for sind fälschbar und können für das Rate-Limiting nicht vertrauenswürdig sein, wenn sie direkt vom Client bereitgestellt werden.

GOTRUE_RATE_LIMIT_EMAIL_SENT - string

Begrenzen Sie die Anzahl der pro Stunde gesendeten E-Mails für die folgenden Endpunkte: /signup, /invite, /magiclink, /recover, /otp und /user.

GOTRUE_PASSWORD_MIN_LENGTH - int

Mindestlänge des Passworts, standardmäßig 6.

GOTRUE_PASSWORD_REQUIRED_CHARACTERS - ein String von Zeichensätzen, getrennt durch :. Ein Passwort muss mindestens ein Zeichen aus jedem Satz enthalten, um akzeptiert zu werden. Um das Zeichen : zu verwenden, maskieren Sie es mit \.

GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED - bool

Wenn die Rotation von Refresh-Tokens aktiviert ist, erkennt die Authentifizierung automatisch böswillige Versuche, ein widerrufenes Refresh-Token erneut zu verwenden. Wird ein böswilliger Versuch erkannt, widerruft GoTrue sofort alle Tokens, die von dem betreffenden Token abgeleitet wurden.

GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL - string

Diese Einstellung ist nur anwendbar, wenn GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED aktiviert ist. Das Wiederverwendungsintervall für ein Refresh-Token ermöglicht es, das Refresh-Token während des Intervalls mehrfach auszutauschen, um Nebenläufigkeits- oder Offline-Probleme zu unterstützen. Während des Wiederverwendungsintervalls betrachtet die Authentifizierung die Verwendung eines widerrufenen Tokens nicht als böswilligen Versuch und gibt einfach das untergeordnete Refresh-Token zurück.

Nur das zuvor widerrufene Token kann wiederverwendet werden. Die Verwendung eines alten Refresh-Tokens lange vor dem aktuell gültigen Refresh-Token löst die Wiederverwendungserkennung aus.

API```properties

GOTRUE_API_HOST=localhost PORT=9999 API_EXTERNAL_URL=http://localhost:9999

root@kitploit:~
`API_HOST` - `string`

Hostname, auf dem gelauscht werden soll.

`PORT` (no prefix) / `API_PORT` - `number`

Portnummer, auf der gelauscht werden soll. Standardmäßig `8081`.

`API_ENDPOINT` - `string` _Nur Multi-Instanz-Modus_

Steuert, über welchen Endpoint Netlify auf diese API zugreifen kann.

`API_EXTERNAL_URL` - `string` **erforderlich**

Die URL, unter der GoTrue möglicherweise erreicht wird.

`REQUEST_ID_HEADER` - `string`

Falls Sie eine Request-ID von der eingehenden Anfrage übernehmen möchten, geben Sie den Namen in diesem Wert an.

### Datenbank```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth

DB_DRIVER - string erforderlich

Wählt aus, welchen Datenbank-Dialekt du verwenden möchtest. Muss postgres sein.

DATABASE_URL (ohne Präfix) / DB_DATABASE_URL - string erforderlich

Verbindungszeichenfolge für die Datenbank.

GOTRUE_DB_MAX_POOL_SIZE - int

Legt die maximale Anzahl offener Verbindungen zur Datenbank fest. Der Standardwert ist 0, was einer „unbegrenzten" Anzahl von Verbindungen entspricht.

DB_NAMESPACE - string

Fügt allen Tabellennamen ein Präfix hinzu.

Hinweis zu Migrationen

Migrationen werden automatisch angewendet, wenn du ./auth ausführst. Du hast jedoch auch die Möglichkeit, die Migrationen über die folgenden Methoden erneut auszuführen:

  • Wenn lokal erstellt: ./auth migrate
  • Mit Docker: docker run --rm auth gotrue migrate

Protokollierung```properties

LOG_LEVEL=debug # available without GOTRUE prefix (exception) GOTRUE_LOG_FILE=/var/log/go/auth.log

root@kitploit:~
`LOG_LEVEL` - `string`

Steuert, welche Loglevels ausgegeben werden. Wählen Sie zwischen `panic`, `fatal`, `error`, `warn`, `info` oder `debug`. Der Standardwert ist `info`.

`LOG_FILE` - `string`

Wenn Sie möchten, dass Logs in eine Datei geschrieben werden, setzen Sie `log_file` auf einen gültigen Dateipfad.

### Observability

Auth verfügt über eine grundlegende Observability-Unterstützung. Es kann
[OpenTelemetry](https://opentelemetry.io)-Metriken und -Traces an einen Collector exportieren.

#### Tracing

Konfigurieren Sie zum Aktivieren von Tracing diese Variablen:

`GOTRUE_TRACING_ENABLED` - `bool`

`GOTRUE_TRACING_EXPORTER` - `string` nur `opentelemetry` wird unterstützt

Stellen Sie außerdem sicher, dass Sie auch die [OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)-Konfiguration
für Ihren Collector oder Dienst konfigurieren.

Wenn Sie beispielsweise
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
verwenden, sollten Sie diese standardmäßigen OpenTelemetry-OTLP-Variablen festlegen:```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"

Metriken

Um Metriken zu aktivieren, konfigurieren Sie diese Variablen:

GOTRUE_METRICS_ENABLED - boolean

GOTRUE_METRICS_EXPORTER - string, nur opentelemetry und prometheus werden unterstützt

Stellen Sie sicher, dass Sie auch die OpenTelemetry Exporter Konfiguration für Ihren Collector oder Dienst einrichten.

Wenn Sie den prometheus-Exporter verwenden, können Server-Host und Port mit diesen standardmäßigen OpenTelemetry-Variablen konfiguriert werden:

OTEL_EXPORTER_PROMETHEUS_HOST - IP-Adresse, Standard 0.0.0.0

OTEL_EXPORTER_PROMETHEUS_PORT - Portnummer, Standard 9100

Die Metriken werden auf dem /-Pfad auf dem Server exportiert.

Wenn Sie den opentelemetry-Exporter verwenden, werden die Metriken an den Collector übertragen.

Wenn Sie beispielsweise Honeycomb.io verwenden, sollten Sie diese standardmäßigen OpenTelemetry-OTLP-Variablen festlegen:``` OTEL_SERVICE_NAME=auth OTEL_EXPORTER_OTLP_PROTOCOL=grpc OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443 OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=,x-honeycomb-dataset=auth"

root@kitploit:~
Beachten Sie, dass Honeycomb.io einen kostenpflichtigen Plan benötigt, um Metriken aufzunehmen.

Wenn Sie ein Problem mit nicht übertragenen Traces oder Metriken debuggen müssen, können Sie
`DEBUG=true` setzen, um weitere Einblicke vom OpenTelemetry-SDK zu erhalten.

#### Benutzerdefinierte Ressourcenattribute

Bei Verwendung des OpenTelemetry-Tracing- oder Metrik-Exporters können Sie benutzerdefinierte
Ressourcenattribute über die [standardmäßige Umgebungsvariable `OTEL_RESOURCE_ATTRIBUTES`](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable) definieren.

Ein Standardattribut `auth.version` wird bereitgestellt, das die Build-Version enthält.

#### Tracing von HTTP-Routen

Alle HTTP-Aufrufe an die Auth-API werden getracet. Die Routen verwenden die parametrisierte
Version der Route, und die Werte für die Routenparameter sind als Span-Attribut
`http.route.params.<route-key>` verfügbar.

Zum Beispiel die folgende Anfrage:```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/

wird verfolgt als:``` http.method = GET http.route = /admin/users/{user_id} http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927

root@kitploit:~
#### Go-Runtime- und HTTP-Metriken

Alle Go-Runtime-Metriken werden exponiert. Einige HTTP-Metriken werden ebenfalls erfasst
standardmäßig.

### JSON Web Tokens (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify

JWT_SECRET - string erforderlich

Das Geheimnis, mit dem JWT-Tokens signiert werden.

JWT_EXP - number

Wie lange Tokens gültig sind, in Sekunden. Standard ist 3600 (1 Stunde).

JWT_AUD - string

Die standardmäßige JWT-Zielgruppe. Verwenden Sie Zielgruppen, um Benutzer zu gruppieren.

JWT_ADMIN_GROUP_NAME - string

Der Name der Admin-Gruppe (falls aktiviert). Standard ist admin.

JWT_DEFAULT_GROUP_NAME - string

Die Standardgruppe, der alle neuen Benutzer zugewiesen werden.

Externe Authentifizierungsanbieter

Wir unterstützen apple, azure, bitbucket, discord, facebook, figma, github, gitlab, google, keycloak, linkedin, notion, snapchat, spotify, slack, twitch, und für die externe Authentifizierung.

Verwenden Sie die Namen als Schlüssel unter external, um jeden einzelnen zu konfigurieren.```properties GOTRUE_EXTERNAL_GITHUB_ENABLED=true GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=myappclientid GOTRUE_EXTERNAL_GITHUB_SECRET=clientsecretvaluessssh GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=http://localhost:3000/callback

root@kitploit:~
Es sind keine externen Anbieter erforderlich, aber Sie müssen die erforderlichen Werte angeben, wenn Sie einen davon aktivieren möchten.

`EXTERNAL_X_ENABLED` - `bool`

Gibt an, ob dieser externe Anbieter aktiviert ist oder nicht

`EXTERNAL_X_CLIENT_ID` - `string` **erforderlich**

Die beim externen Anbieter registrierte OAuth2-Client-ID.

`EXTERNAL_X_SECRET` - `string` **erforderlich**

Das vom externen Anbieter bei der Registrierung bereitgestellte OAuth2-Client-Secret.

`EXTERNAL_X_REDIRECT_URI` - `string` **erforderlich**

Die URI, auf die ein OAuth2-Anbieter mit den Werten `code` und `state` umleitet.

`EXTERNAL_X_URL` - `string`

Die Basis-URL, die zum Erstellen der URLs für die Anforderung von Autorisierungs- und Zugriffstokens verwendet wird. Wird von `gitlab` und `keycloak` verwendet. Für `gitlab` lautet der Standardwert `https://gitlab.com`. Für `keycloak` müssen Sie dies auf Ihre Instanz setzen, zum Beispiel: `https://keycloak.example.com/realms/myrealm`

#### Netzwerk-Härtung

Die Konfiguration eines externen Authentifizierungsanbieters führt dazu, dass Auth ausgehende HTTP-Anfragen an die Autorisierungs-, Token- und Userinfo-Endpunkte dieses Anbieters sendet. Das Konfigurieren eines Anbieters entweder über `GOTRUE_EXTERNAL_*`-Einstellungen oder eine Admin-API ist eine administrative Aktion und impliziert Vertrauen in die Hosts und URLs, die kontaktiert werden.

Das Netzwerk, in dem Auth läuft, sollte so gehärtet sein, dass diese ausgehenden Verbindungen keine nur internen Ressourcen erreichen können, die Sie nicht offenlegen möchten, wie `localhost`-/Loopback-Adressen oder Cloud-Metadata-Endpunkte (z. B. `169.254.169.254`). Dies ist vor allem bei Anbietern mit administrativ konfigurierbaren oder ermittelbaren Endpunkten (z. B. benutzerdefinierten OAuth-/OIDC-Anbietern) wichtig, da eine falsch konfigurierte oder bösartige URL andernfalls zum Erreichen interner Infrastruktur verwendet werden könnte.

#### Apple-OAuth

Um die externe Authentifizierung mit Apple lokal auszuprobieren, müssen Sie Folgendes tun:

1. Ordnen Sie localhost auf \<my_custom_dns \> in Ihrer `/etc/hosts`-Konfiguration um.
2. Konfigurieren Sie auth so, dass HTTPS-Verkehr über localhost bereitgestellt wird, indem Sie `ListenAndServe` in [api.go](https://github.com/supabase/auth/blob/HEAD/internal/api/api.go) durch Folgendes ersetzen:   ```
      func (a *API) ListenAndServe(hostAndPort string) {
        log := logrus.WithField("component", "api")
        path, err := os.Getwd()
        if err != nil {
          log.Println(err)
        }
        server := &http.Server{
          Addr:    hostAndPort,
          Handler: a.handler,
        }
        done := make(chan struct{})
        defer close(done)
        go func() {
          waitForTermination(log, done)
          ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
          defer cancel()
          server.Shutdown(ctx)
        }()
        if err := server.ListenAndServeTLS("PATH_TO_CRT_FILE", "PATH_TO_KEY_FILE"); err != http.ErrServerClosed {
          log.WithError(err).Fatal("http server listen failed")
        }
    }
  1. Generiere die crt- und key-Datei. Weitere Informationen findest du hier.
  2. Generiere das GOTRUE_EXTERNAL_APPLE_SECRET, indem du diesem Beitrag folgst!

E-Mail

Das Senden von E-Mails ist nicht erforderlich, wird aber für die Passwortwiederherstellung dringend empfohlen. Wenn aktiviert, musst du die unten aufgeführten erforderlichen Werte angeben.```properties GOTRUE_SMTP_HOST=smtp.mandrillapp.com GOTRUE_SMTP_PORT=587 GOTRUE_SMTP_USER=[email protected] GOTRUE_SMTP_PASS=correcthorsebatterystaple GOTRUE_SMTP_ADMIN_EMAIL=[email protected] GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm"

root@kitploit:~
`SMTP_ADMIN_EMAIL` - `string` **erforderlich**

Die `From`-E-Mail-Adresse für alle gesendeten E-Mails.

`SMTP_HOST` - `string` **erforderlich**

Der Hostname des Mailservers, über den E-Mails gesendet werden.

`SMTP_PORT` - `number` **erforderlich**

Die Portnummer, über die eine Verbindung zum Mailserver hergestellt wird.

`SMTP_USER` - `string`

Falls der Mailserver eine Authentifizierung erfordert, der zu verwendende Benutzername.

`SMTP_PASS` - `string`

Falls der Mailserver eine Authentifizierung erfordert, das zu verwendende Passwort.

`SMTP_MAX_FREQUENCY` - `number`

Steuert die Mindestzeit, die vergehen muss, bevor eine weitere Bestätigungs-E-Mail für die Registrierung oder eine E-Mail zum Zurücksetzen des Passworts gesendet wird. Der Wert ist die Anzahl der Sekunden. Standardmäßig 900 (15 Minuten).

`SMTP_SENDER_NAME` - `string`

Legt den Namen des Absenders fest. Standardmäßig wird `SMTP_ADMIN_EMAIL` verwendet, falls nicht angegeben.

`MAILER_AUTOCONFIRM` - `bool`

Wenn Sie keine E-Mail-Bestätigung benötigen, können Sie dies auf `true` setzen. Standardmäßig `false`.

`MAILER_OTP_EXP` - `number`

Steuert die Gültigkeitsdauer eines E-Mail-Links oder OTPs.

`MAILER_URLPATHS_INVITE` - `string`

URL-Pfad, der in der Einladungs-E-Mail verwendet wird. Standardmäßig `/verify`.

`MAILER_URLPATHS_CONFIRMATION` - `string`

URL-Pfad, der in der Bestätigungs-E-Mail für die Registrierung verwendet wird. Standardmäßig `/verify`.

`MAILER_URLPATHS_RECOVERY` - `string`

URL-Pfad, der in der E-Mail zum Zurücksetzen des Passworts verwendet wird. Standardmäßig `/verify`.

`MAILER_URLPATHS_EMAIL_CHANGE` - `string`

URL-Pfad, der in der Bestätigungs-E-Mail für die E-Mail-Änderung verwendet wird. Standardmäßig `/verify`.

`MAILER_SUBJECTS_INVITE` - `string`

E-Mail-Betreff für die Benutzereinladung. Standardmäßig `You've been invited`.

`MAILER_SUBJECTS_CONFIRMATION` - `string`

E-Mail-Betreff für die Bestätigung der Registrierung. Standardmäßig `Confirm your email address`.

`MAILER_SUBJECTS_RECOVERY` - `string`

E-Mail-Betreff für das Zurücksetzen des Passworts. Standardmäßig `Reset your password`.

`MAILER_SUBJECTS_MAGIC_LINK` - `string`

E-Mail-Betreff für die Magic-Link-E-Mail. Standardmäßig `Your sign-in link`.

`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`

E-Mail-Betreff für die Bestätigung der E-Mail-Änderung. Standardmäßig `Confirm your new email address`.

`MAILER_SUBJECTS_REAUTHENTICATION` - `string`

E-Mail-Betreff für die erneute Authentifizierung. Standardmäßig `{{ .Token }} is your verification code`.

`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über ein geändertes Passwort. Standardmäßig `Your password was changed`.

`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine geänderte E-Mail-Adresse. Standardmäßig `Your email address was changed`.

`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine geänderte Telefonnummer. Standardmäßig `Your phone number was changed`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine verknüpfte Identität. Standardmäßig `A new sign-in method was linked to your account`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine entfernte Identität. Standardmäßig `A sign-in method was removed from your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine hinzugefügte Verifizierungsmethode. Standardmäßig `A new verification method was added to your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`

E-Mail-Betreff für die Benachrichtigung über eine entfernte Verifizierungsmethode. Standardmäßig `A verification method was removed from your account`.

`MAILER_TEMPLATES_INVITE` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die beim Einladen eines Benutzers verwendet wird. (z. B. `https://www.example.com/path-to-email-template.html`)
Die Variablen `SiteURL`, `Email` und `ConfirmationURL` sind verfügbar.

Standardinhalt (falls Vorlage nicht verfügbar):```html
<h2>You've been invited</h2>

<p>You've been invited to create an account. Follow the link below to accept.</p>
<p><a href="{{ .ConfirmationURL }}">Accept invitation</a></p>

MAILER_TEMPLATES_CONFIRMATION - string

URL-Pfad zu einer E-Mail-Vorlage, die beim Bestätigen einer Anmeldung verwendet wird. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen SiteURL, Email und ConfirmationURL sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Confirm your email address

Follow the link below to confirm this email address and finish signing up.

Confirm email address

``` `MAILER_TEMPLATES_RECOVERY` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die beim Zurücksetzen eines Passworts verwendet werden soll. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen SiteURL, Email und ConfirmationURL sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Reset your password

We received a request to reset your password. Follow the link below to choose a new one.

Reset password

If you didn't request this, you can safely ignore this email.

``` `MAILER_TEMPLATES_MAGIC_LINK` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die beim Senden des Magic Links verwendet werden soll. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen SiteURL, Email und ConfirmationURL sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Your sign-in link

Follow the link below to sign in. This link expires shortly and can only be used once.

Sign in

``` `MAILER_TEMPLATES_EMAIL_CHANGE` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die beim Bestätigen der Änderung einer E-Mail-Adresse verwendet werden soll. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen SiteURL, Email, NewEmail und ConfirmationURL sind verfügbar.

Standardinhalt (falls keine Vorlage verfügbar ist):```html

Confirm your new email address

Follow the link below to confirm {{ .NewEmail }} as your new email address.

Confirm new email address

If you didn't request this change, you can safely ignore this email.

``` `MAILER_TEMPLATES_REAUTHENTICATION` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die beim erneuten Authentifizieren eines Benutzers verwendet werden soll. (z. B. https://www.example.com/path-to-email-template.html) Die Variable Token ist verfügbar.

Standardinhalt (falls Vorlage nicht verfügbar):```html

Your verification code

Use the code below to verify your identity. It expires shortly.

{{ .Token }}

``` `MAILER_TEMPLATES_PASSWORD_CHANGED_NOTIFICATION` - `string`

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, wenn ein Benutzer darüber benachrichtigt wird, dass sein Passwort geändert wurde. (z. B. https://www.example.com/path-to-email-template.html) Email-Variablen sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Your password was changed

The password for your account was recently changed.

If you didn't make this change, reset your password and contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_PASSWORD_CHANGED_ENABLED` - `bool`

Ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn das Passwort eines Benutzers geändert wird. Standardmäßig false.

MAILER_TEMPLATES_EMAIL_CHANGED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, wenn ein Benutzer benachrichtigt wird, dass seine E-Mail-Adresse geändert wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email und OldEmail sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Your email address was changed

The email address for your account was changed from {{ .OldEmail }} to {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_EMAIL_CHANGED_ENABLED` - `bool`

Gibt an, ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn die E-Mail-Adresse eines Benutzers geändert wird. Standardmäßig false.

GOTRUE_MAILER_TEMPLATES_PHONE_CHANGED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, wenn ein Benutzer darüber benachrichtigt wird, dass seine Telefonnummer geändert wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email, Phone und OldPhone sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

Your phone number was changed

The phone number for your account was changed from {{ .OldPhone }} to {{ .Phone }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_PHONE_CHANGED_ENABLED` - `bool`

Legt fest, ob eine Benachrichtigungs-E-Mail gesendet wird, wenn sich die Telefonnummer eines Benutzers ändert. Standardwert ist false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, um einen Benutzer zu benachrichtigen, dass eine Anmeldemethode mit seinem Konto verknüpft wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email und Provider sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

A new sign-in method was linked

Your {{ .Provider }} account was linked as a new sign-in method for {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_LINKED_ENABLED` - `bool`

Ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn eine Anmeldemethode mit dem Konto eines Benutzers verknüpft wird. Standardmäßig false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_UNLINKED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, wenn ein Benutzer darüber informiert wird, dass eine Anmeldemethode von seinem Konto entfernt wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email und Provider sind verfügbar.

Standardinhalt (falls Vorlage nicht verfügbar):```html

A sign-in method was removed

Your {{ .Provider }} account was removed as a sign-in method for {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_UNLINKED_ENABLED` - `bool`

Legt fest, ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn eine Anmeldemethode vom Konto eines Benutzers entfernt wird. Standardmäßig false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_ENROLLED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, um einen Benutzer zu benachrichtigen, dass seinem Konto eine neue Verifizierungsmethode hinzugefügt wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email und FactorType sind verfügbar.

Standardinhalt (falls die Vorlage nicht verfügbar ist):```html

A new verification method was added

Sign-in verification method {{ .FactorType }} was added to your account.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_ENROLLED_ENABLED` - `bool`

Gibt an, ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn einem Benutzerkonto eine neue Verifizierungsmethode hinzugefügt wird. Standardwert ist false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_UNENROLLED_NOTIFICATION - string

URL-Pfad zu einer E-Mail-Vorlage, die verwendet wird, um einen Benutzer zu benachrichtigen, dass eine Verifizierungsmethode aus seinem Konto entfernt wurde. (z. B. https://www.example.com/path-to-email-template.html) Die Variablen Email und FactorType sind verfügbar.

Standardinhalt (falls Vorlage nicht verfügbar):```html

A verification method was removed

Sign-in verification method {{ .FactorType }} was removed from your account.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_UNENROLLED_ENABLED` - `bool`

Ob eine Benachrichtigungs-E-Mail gesendet werden soll, wenn eine Verifizierungsmethode vom Konto eines Benutzers entfernt wird. Der Standardwert ist false.

Telefon-Authentifizierung

SMS_AUTOCONFIRM - bool

Wenn Sie keine Telefonbestätigung benötigen, können Sie dies auf true setzen. Der Standardwert ist false.

SMS_MAX_FREQUENCY - number

Steuert die Mindestzeit, die vergehen muss, bevor eine weitere SMS-OTP gesendet wird. Der Wert ist die Anzahl der Sekunden. Der Standardwert ist 60 (1 Minute).

SMS_OTP_EXP - number

Steuert, wie lange eine SMS-OTP gültig ist.

SMS_OTP_LENGTH - number

Steuert die Anzahl der Ziffern der gesendeten SMS-OTP.

SMS_PROVIDER - string

Verfügbare Optionen sind: twilio, messagebird, textlocal und vonage

Dann können Sie Ihre twilio-Anmeldedaten verwenden:

  • SMS_TWILIO_ACCOUNT_SID
  • SMS_TWILIO_AUTH_TOKEN
  • SMS_TWILIO_MESSAGE_SERVICE_SID - kann auf Ihre twilio-Absender-Handynummer gesetzt werden

Oder Messagebird-Anmeldedaten, die Sie im Dashboard erhalten können:

  • SMS_MESSAGEBIRD_ACCESS_KEY - Ihr Messagebird-Zugriffsschlüssel
  • SMS_MESSAGEBIRD_ORIGINATOR - SMS-Absender (Ihre Messagebird-Telefonnummer mit + oder Firmenname)

CAPTCHA

  • Wenn aktiviert, prüft CAPTCHA den Anforderungstext auf das Feld captcha_token und stellt eine Verifizierungsanfrage an den CAPTCHA-Anbieter.

SECURITY_CAPTCHA_ENABLED - string

Ob die Captcha-Middleware aktiviert ist

SECURITY_CAPTCHA_PROVIDER - string

Derzeit werden nur die folgenden Optionen unterstützt: hCaptcha und Turnstile

  • SECURITY_CAPTCHA_SECRET - string
  • SECURITY_CAPTCHA_TIMEOUT - string

Von Ihrem hcaptcha- oder turnstile-Konto abrufen.

Reauthentifizierung

SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION - bool

Erzwingt die erneute Authentifizierung bei Passwortaktualisierung.

Anonyme Anmeldungen

GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED - bool

Verwenden Sie dies, um anonyme Anmeldungen zu aktivieren/deaktivieren.

IP-Adressweiterleitung

GOTRUE_SECURITY_SB_FORWARDED_FOR_ENABLED - bool

Aktiviert die Weiterleitung von IP-Adressen mithilfe des HTTP-Anforderungsheaders Sb-Forwarded-For. Wenn diese Option aktiviert ist, analysiert Auth den ersten Wert dieses Headers als IP-Adresse und verwendet ihn für die IP-Adressverfolgung und das Ratenlimit. Stellen Sie sicher, dass diesem Header vollständig vertraut wird, bevor Sie diese Funktion aktivieren, indem Sie ihn nur von vertrauenswürdigen Clients oder Proxys übergeben.

Endpunkte

Auth stellt die folgenden Endpunkte bereit:

GET /settings

Gibt die öffentlich verfügbaren Einstellungen für diese Auth-Instanz zurück.```json { "external": { "apple": true, "azure": true, "bitbucket": true, "discord": true, "facebook": true, "figma": true, "github": true, "gitlab": true, "google": true, "keycloak": true, "linkedin": true, "notion": true, "slack": true, "snapchat": true, "spotify": true, "twitch": true, "twitter": true, "workos": true }, "disable_signup": false, "autoconfirm": false }

root@kitploit:~
### **POST, PUT /admin/users/<user_id>**

Erstellt (POST) oder aktualisiert (PUT) den Benutzer basierend auf der angegebenen `user_id`. Das Feld `ban_duration` akzeptiert die folgenden Zeiteinheiten: "ns", "us", "ms", "s", "m", "h". Siehe [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) für weitere Details zum verwendeten Format.```js
headers:
{
  "Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // requires a role claim that can be set in the GOTRUE_JWT_ADMIN_ROLES env var
}

body:
{
  "role": "test-user",
  "email": "[email protected]",
  "phone": "12345678",
  "password": "secret", // only if type = signup
  "email_confirm": true,
  "phone_confirm": true,
  "user_metadata": {},
  "app_metadata": {},
  "ban_duration": "24h" or "none" // to unban a user
}

POST /admin/generate_link

Gibt den entsprechenden E-Mail-Aktionslink basierend auf dem angegebenen Typ zurück. Die Antwort enthält unter anderem auch die Query-Parameter des Aktionslinks als separate JSON-Felder der Einfachheit halber (zusammen mit dem E-Mail-OTP, aus dem das entsprechende Token generiert wird).```js headers: { "Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // admin role required }

body: { "type": "signup" or "magiclink" or "recovery" or "invite" or "email_change_current" or "email_change_new", "email": "[email protected]", "password": "secret", // only if type = signup "data": { ... }, // only if type = signup "redirect_to": "https://supabase.io" // Redirect URL to send the user to after an email action. Defaults to SITE_URL.

}

root@kitploit:~
Rückgabewerte```js
{
  "action_link": "http://localhost:9999/verify?token=TOKEN&type=TYPE&redirect_to=REDIRECT_URL",
  "email_otp": "EMAIL_OTP",
  "hashed_token": "TOKEN",
  "verification_type": "TYPE",
  "redirect_to": "REDIRECT_URL",
  ...
}

POST /signup

Registrieren Sie einen neuen Benutzer mit einer E-Mail-Adresse und einem Passwort.```json { "email": "[email protected]", "password": "secret" }

root@kitploit:~
Rückgabe:```js
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

// if sign up is a duplicate then faux data will be returned
// as to not leak information about whether a given email
// has an account with your service or not

Registriere einen neuen Benutzer mit Telefonnummer und Passwort.```js { "phone": "12345678", // follows the E.164 format "password": "secret" }

root@kitploit:~
Rückgabe:```js
{
  "id": "11111111-2222-3333-4444-5555555555555", // if duplicate sign up, this ID will be faux
  "phone": "12345678",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

wenn AUTOCONFIRM aktiviert ist und die Registrierung ein Duplikat ist, dann gibt der Endpunkt Folgendes zurück:```json { "code": 400, "msg": "User already registered" }

root@kitploit:~
### **POST /resend**

Ermöglicht einem Benutzer, eine bestehende signup-, sms-, email_change- oder phone_change-OTP erneut zu senden.```json
{
  "email": "[email protected]",
  "type": "signup"
}

Bitte fügen Sie den zu übersetzenden Markdown-Text nach „INPUT:" ein.```json { "phone": "12345678", "type": "sms" }

root@kitploit:~
Rückgabe:```json
{
  "message_id": "msgid123456"
}

POST /invite

Lädt einen neuen Benutzer mit einer E-Mail ein. Dieser Endpunkt erfordert das service_role- oder supabase_admin-JWT, das als Auth-Bearer-Header gesetzt ist:

z. B.```js headers: { "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" }

root@kitploit:~
Please provide the Markdown content to translate.```json
{
  "email": "[email protected]"
}

Rückgabe:```json { "id": "11111111-2222-3333-4444-5555555555555", "email": "[email protected]", "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", "created_at": "2016-05-15T19:53:12.368652374-07:00", "updated_at": "2016-05-15T19:53:12.368652374-07:00", "invited_at": "2016-05-15T19:53:12.368652374-07:00" }

root@kitploit:~
### **POST /verify**

Verifizieren Sie eine Registrierung oder eine Passwortwiederherstellung. Der Typ kann `signup`, `recovery`, `invite`, `magiclink`, `email_change`, `sms` oder `phone_change` sein,
und das `token` ist ein Token, das entweder von `/signup` oder `/recover` zurückgegeben wird.```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email"
}

password ist für die Registrierungsüberprüfung erforderlich, wenn kein vorhandenes Passwort existiert.

Rückgabe:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token", "type": "signup | recovery | invite | magiclink | email_change | sms | phone_change" }

root@kitploit:~
Verifizieren Sie eine Telefonanmeldung oder SMS-OTP. Der Typ sollte auf `sms` gesetzt werden.```json
{
  "type": "sms",
  "token": "confirmation-otp-delivered-in-sms",
  "redirect_to": "https://supabase.io",
  "phone": "phone-number-sms-otp-was-delivered-to"
}

Gibt zurück:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }

root@kitploit:~
### **GET /verify**

Verifiziert eine Registrierung oder eine Passwortwiederherstellung. Der Typ kann `signup`, `recovery`, `magiclink`, `invite` oder `email_change` sein
und das `token` ist ein Token, das entweder von `/signup`, `/recover` oder `/magiclink` zurückgegeben wird.

Abfrageparameter:```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email",
  "redirect_to": "https://supabase.io"
}

Der Benutzer wird angemeldet und weitergeleitet zu:``` SITE_URL/#access_token=jwt-token-representing-the-user&token_type=bearer&expires_in=3600&refresh_token=a-refresh-token&type=invite

root@kitploit:~
Ihre App sollte die Query-Parameter im Fragment erkennen und daraus die Session setzen (supabase-js übernimmt dies automatisch)

Sie können den Parameter `type` verwenden, um den Benutzer im Falle von `invite` oder `recovery` zu einem Formular zum Festlegen des Passworts umzuleiten,
oder im Falle von `signup` eine Konto-bestätigt-/Willkommensnachricht anzeigen, oder ihn zu einem zusätzlichen Onboarding-Prozess weiterleiten

### **POST /otp**

Einmalpasswort. Stellt dem Benutzer einen Magic Link oder ein SMS-OTP bereit, je nachdem ob der Request-Body einen "email"- oder "phone"-Schlüssel enthält.

Wenn `"create_user": true` gesetzt ist, wird der Benutzer nicht automatisch registriert, falls der Benutzer nicht existiert.```js
{
  "phone": "12345678" // follows the E.164 format
  "create_user": true
}

ODER```js // exactly the same as /magiclink { "email": "[email protected]" "create_user": true }

root@kitploit:~
Rückgabe:```json
{}

POST /magiclink (empfohlen, stattdessen /otp zu verwenden. Siehe oben.)

Magic Link. Liefert einen Link (z. B. /verify?type=magiclink&token=fgtyuf68ddqdaDd) an den Benutzer basierend auf der E-Mail-Adresse, mit dem sich ein access_token einlösen lässt.

Standardmäßig können Magic Links nur einmal alle 60 Sekunden gesendet werden.```json { "email": "[email protected]" }

root@kitploit:~
Gibt zurück:```json
{}

Beim Anklicken des Magic-Links erfolgt eine Weiterleitung zu <SITE_URL>#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=magiclink (siehe /verify oben)

POST /recover

Passwortwiederherstellung. Versendet eine E-Mail zur Passwortwiederherstellung an den Benutzer anhand der E-Mail-Adresse.

Standardmäßig können Wiederherstellungslinks nur einmal alle 60 Sekunden gesendet werden.```json { "email": "[email protected]" }

root@kitploit:~
Rückgabe:```json
{}

POST /token

Dies ist ein OAuth2-Endpunkt, der derzeit die Grant-Typen password und refresh_token implementiert

Query-Parameter:``` ?grant_type=password

root@kitploit:~
body:```js
// Email login
{
  "email": "[email protected]",
  "password": "somepassword"
}

// Phone login
{
  "phone": "12345678",
  "password": "somepassword"
}

oder

Abfrageparameter:``` grant_type=refresh_token

root@kitploit:~
body:```json
{
  "refresh_token": "a-refresh-token"
}

Sobald Sie ein Zugriffstoken haben, können Sie auf die Methoden zugreifen, die eine Authentifizierung erfordern, indem Sie den Header Authorization: Bearer YOUR_ACCESS_TOKEN_HERE setzen.

Rückgabe:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }

root@kitploit:~
### **GET /user**

Ruft das JSON-Objekt für den angemeldeten Benutzer ab (erfordert Authentifizierung)

Gibt zurück:```json
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

PUT /user

Aktualisiert einen Benutzer (erfordert Authentifizierung). Abgesehen vom Ändern von E-Mail/Passwort kann diese Methode verwendet werden, um benutzerdefinierte Benutzerdaten festzulegen. Das Ändern der E-Mail führt dazu, dass ein Magic Link gesendet wird.```json { "email": "[email protected]", "password": "new-password", "phone": "+123456789", "data": { "key": "value", "number": 10, "admin": false } }

root@kitploit:~
Rückgabe:```json
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "email_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "phone": "+123456789",
  "phone_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

Wenn GOTRUE_SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION aktiviert ist, muss sich der Benutzer zuerst erneut authentifizieren.```json { "password": "new-password", "nonce": "123456" }

root@kitploit:~
### **GET /reauthenticate**

Sendet ein Nonce an die E-Mail (bevorzugt) oder Telefonnummer des Benutzers. Dieser Endpunkt setzt voraus, dass der Benutzer zuerst angemeldet/authentifiziert ist. Der Benutzer muss entweder eine E-Mail-Adresse oder eine Telefonnummer haben, damit das Nonce erfolgreich gesendet werden kann.```js
headers: {
  "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO"
}

POST /logout

Meldet einen Benutzer ab (erfordert Authentifizierung).

Dies widerruft alle Refresh-Tokens für den Benutzer. Beachten Sie, dass die JWT-Tokens für die zustandslose Authentifizierung weiterhin gültig bleiben, bis sie ablaufen.

GET /authorize

access_token vom externen OAuth-Anbieter abrufen

Query-Parameter:``` provider=apple | azure | bitbucket | discord | facebook | figma | github | gitlab | google | keycloak | linkedin | notion | slack | snapchat | spotify | twitch | twitter | workos

scopes=<optional additional scopes depending on the provider (email and name are requested by default)>

root@kitploit:~
Leitet zum Anbieter weiter und dann zu `/callback`

Für die Apple-spezifische Einrichtung siehe: <https://github.com/supabase/auth#apple-oauth>

### **GET /callback**

Der externe Anbieter sollte zu diesem Endpunkt weiterleiten.

Leitet weiter zu `<GOTRUE_SITE_URL>#access_token=<access_token>&refresh_token=<refresh_token>&provider_token=<provider_oauth_token>&expires_in=3600&provider=<provider_name>`

Wenn zusätzliche Scopes angefordert wurden, wird `provider_token` befüllt. Sie können dies verwenden, um zusätzliche Daten vom Anbieter abzurufen oder mit dessen Diensten zu interagieren.
Tool herunterladen
twitter
workos