Zum Inhalt springen

Authentifizierung

Alle Auth-Endpunkte beginnen mit /api/v1/auth/. Verwende für authentifizierte Anfragen den Header Authorization: Bearer <token>.

MethodePfadBeschreibungAuth
GET/v1/healthHealth-Check (öffentlich)Nein
POST/v1/auth/registerNeues Konto erstellenNein
POST/v1/auth/loginAuthentifizieren und Token erhaltenNein
POST/v1/auth/verifyE-Mail-Adresse verifizierenNein
POST/v1/auth/forgot-passwordE-Mail zum Zurücksetzen des Passworts anfordernNein
POST/v1/auth/reset-passwordPasswort mit Token zurücksetzenNein
POST/v1/auth/passkey/authenticate-optionsWebAuthn-Login-Challenge abrufenNein
POST/v1/auth/passkey/authenticateWebAuthn-Login abschließenNein
POST/v1/auth/logoutAktuellen Token widerrufenJa
POST/v1/auth/logout-allAlle Tokens außer dem aktuellen widerrufenJa
POST/v1/auth/refreshNeuen Token ausstellenJa
GET/v1/auth/tokensAlle aktiven Tokens auflistenJa
POST/v1/auth/revoke-tokenEinen bestimmten Token widerrufenJa
POST/v1/auth/passkeys/register-optionsWebAuthn-Registrierungs-Challenge abrufenJa
POST/v1/auth/passkeys/registerNeuen Passkey registrierenJa
GET/v1/auth/passkeysPasskeys auflistenJa
PUT/v1/auth/passkeys/{passkey}Einen Passkey umbenennenJa
DELETE/v1/auth/passkeys/{passkey}Einen Passkey löschenJa
POST /v1/auth/register

Request Body:

FeldTypRegeln
namestringerforderlich
emailstringerforderlich, gültige E-Mail-Adresse, eindeutig
passwordstringerforderlich, mind. 12 Zeichen
password_confirmationstringerforderlich, muss mit password übereinstimmen

Begrenzt auf 10 Anfragen pro Stunde pro IP-Adresse.

POST /v1/auth/login

Request Body:

FeldTypRegeln
emailstringerforderlich
passwordstringerforderlich

Begrenzt auf 5 Anfragen pro Minute pro E-Mail-Adresse/IP.

Antwort (200):

{
"success": true,
"data": {
"token": "1|abc123...",
"token_type": "Bearer",
"token_expires_at": "2026-06-27T00:00:00Z",
"user": { "id": 1, "name": "...", "email": "..." }
}
}
POST /v1/auth/verify

Request Body:

FeldTypRegeln
user_idstringerforderlich
tokenstringerforderlich
POST /v1/auth/forgot-password

Sendet einen Link zum Zurücksetzen des Passworts (60 Minuten gültig). Begrenzt auf 10 Anfragen pro Stunde pro IP-Adresse.

FeldTypRegeln
emailstringerforderlich
platformstringoptional (web/mobile/desktop)
POST /v1/auth/reset-password
FeldTypRegeln
tokenstringerforderlich
emailstringerforderlich
passwordstringerforderlich, mind. 12 Zeichen

WebAuthn-Passkey-Login und -Verwaltung.

MethodePfadBeschreibung
POST/v1/auth/passkey/authenticate-optionsLogin-Challenge abrufen
POST/v1/auth/passkey/authenticateLogin abschließen
POST/v1/auth/passkeys/register-optionsRegistrierungs-Challenge abrufen
POST/v1/auth/passkeys/registerNeuen Passkey registrieren
GET/v1/auth/passkeysPasskeys auflisten
PUT/v1/auth/passkeys/{passkey}Einen Passkey umbenennen (name)
DELETE/v1/auth/passkeys/{passkey}Einen Passkey löschen

Die Passkey-Authentifizierung ist begrenzt auf 10 Anfragen pro Minute pro IP-Adresse/E-Mail.

GET /v1/health

Öffentlicher Health-Check. Gibt status, timestamp, app und version zurück.

POST /v1/auth/logout

Widerruft den im Authorization-Header verwendeten Token.

POST /v1/auth/logout-all

Widerruft alle Tokens außer dem, mit dem die Anfrage gestellt wurde.

POST /v1/auth/refresh

Gibt einen neuen Token zurück. Der alte Token wird widerrufen.

Antwort (200):

{
"success": true,
"data": {
"token": "2|def456...",
"token_type": "Bearer",
"token_expires_at": "2026-07-27T00:00:00Z"
}
}
GET /v1/auth/tokens

Gibt alle aktiven Tokens des authentifizierten Benutzers zurück. Jeder Token enthält einen booleschen Wert is_current.

POST /v1/auth/revoke-token

Request Body:

FeldTypRegeln
token_idintegererforderlich