Bedrud Dokumentation

Alle Authentifizierungs-Endpunkte befinden sich unter /api/auth/.

Übersicht

Bedrud unterstützt mehrere Authentifizierungsmethoden:

MethodeEndpunktBeschreibung
E-Mail/PasswortPOST /api/auth/loginKlassische Anmeldung
RegistrierungPOST /api/auth/registerKonto erstellen
GastPOST /api/auth/guest-loginVorübergehender Zugriff
OAuthGET /api/auth/:provider/loginSocial Login
PasskeysPOST /api/auth/passkey/*FIDO2/WebAuthn
Token-AktualisierungPOST /api/auth/refreshZugriffstoken erneuern

Token-Format

Eine erfolgreiche Authentifizierung gibt ein Paar JWT-Token zurück:

{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}
  • Access Token - Kurzlebig, wird im Authorization-Header verwendet
  • Refresh Token - Langlebig, wird verwendet, um neue Zugriffstoken zu erhalten

Tokens verwenden

Fügen Sie das Zugriffstoken in alle authentifizierten Anfragen ein:

Authorization: Bearer <accessToken>

Endpunkte

Registrieren

Ein neues Benutzerkonto erstellen.

POST /api/auth/register

Anfrage-Body:

{
  "email": "user@example.com",
  "password": "securepassword",
  "name": "John Doe"
}

Antwort (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

Anmelden

Mit E-Mail und Passwort authentifizieren.

POST /api/auth/login

Anfrage-Body:

{
  "email": "user@example.com",
  "password": "securepassword"
}

Antwort (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

Gast-Anmeldung

Als Gast ohne Kontoerstellung beitreten. Gäste haben eingeschränkte Berechtigungen.

POST /api/auth/guest-login

Anfrage-Body:

{
  "name": "Guest User"
}

Antwort (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "name": "Guest User",
    "role": "guest"
  }
}

Aktuellen Benutzer abrufen

Das Profil des authentifizierten Benutzers abrufen.

GET /api/auth/me

Header: Authorization: Bearer <accessToken>

Antwort (200):

{
  "id": "uuid",
  "email": "user@example.com",
  "name": "John Doe",
  "avatar": "https://...",
  "role": "user",
  "provider": "email"
}

Token aktualisieren

Ein Refresh Token gegen ein neues Zugriffstoken eintauschen.

POST /api/auth/refresh

Anfrage-Body:

{
  "refreshToken": "eyJ..."
}

Antwort (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ..."
}

Abmelden

Das aktuelle Refresh Token ungültig machen.

POST /api/auth/logout

Header: Authorization: Bearer <accessToken>

Anfrage-Body:

{
  "refreshToken": "eyJ..."
}

Antwort (200):

{
  "message": "logged out"
}

OAuth-Anmeldung

Einen OAuth-Ablauf mit einem Social-Provider starten.

GET /api/auth/:provider/login

Unterstützte Provider:

ProviderPfad
Google/api/auth/google/login
GitHub/api/auth/github/login
Twitter/api/auth/twitter/login

Der Server leitet den Benutzer zur Autorisierungsseite des Providers weiter. Nach der Zustimmung leitet der Provider zur Callback-URL zurück, und der Server gibt JWT-Token zurück.


Fehlerantworten

Alle Authentifizierungs-Endpunkte geben Fehler in diesem Format zurück:

{
  "error": "invalid credentials"
}
StatusBedeutung
400Ungültige Anfrage (fehlende Felder, Validierungsfehler)
401Ungültige Anmeldedaten oder abgelaufenes Token
409E-Mail bereits registriert
500Interner Serverfehler

Siehe auch