Authentifizierung
Alle Auth-Endpunkte beginnen mit /api/v1/auth/. Verwende für authentifizierte Anfragen den Header Authorization: Bearer <token>.
Endpunkte
Abschnitt betitelt „Endpunkte“| Methode | Pfad | Beschreibung | Auth |
|---|---|---|---|
| GET | /v1/health | Health-Check (öffentlich) | Nein |
| POST | /v1/auth/register | Neues Konto erstellen | Nein |
| POST | /v1/auth/login | Authentifizieren und Token erhalten | Nein |
| POST | /v1/auth/verify | E-Mail-Adresse verifizieren | Nein |
| POST | /v1/auth/forgot-password | E-Mail zum Zurücksetzen des Passworts anfordern | Nein |
| POST | /v1/auth/reset-password | Passwort mit Token zurücksetzen | Nein |
| POST | /v1/auth/passkey/authenticate-options | WebAuthn-Login-Challenge abrufen | Nein |
| POST | /v1/auth/passkey/authenticate | WebAuthn-Login abschließen | Nein |
| POST | /v1/auth/logout | Aktuellen Token widerrufen | Ja |
| POST | /v1/auth/logout-all | Alle Tokens außer dem aktuellen widerrufen | Ja |
| POST | /v1/auth/refresh | Neuen Token ausstellen | Ja |
| GET | /v1/auth/tokens | Alle aktiven Tokens auflisten | Ja |
| POST | /v1/auth/revoke-token | Einen bestimmten Token widerrufen | Ja |
| POST | /v1/auth/passkeys/register-options | WebAuthn-Registrierungs-Challenge abrufen | Ja |
| POST | /v1/auth/passkeys/register | Neuen Passkey registrieren | Ja |
| GET | /v1/auth/passkeys | Passkeys auflisten | Ja |
| PUT | /v1/auth/passkeys/{passkey} | Einen Passkey umbenennen | Ja |
| DELETE | /v1/auth/passkeys/{passkey} | Einen Passkey löschen | Ja |
Registrieren
Abschnitt betitelt „Registrieren“POST /v1/auth/registerRequest Body:
| Feld | Typ | Regeln |
|---|---|---|
name | string | erforderlich |
email | string | erforderlich, gültige E-Mail-Adresse, eindeutig |
password | string | erforderlich, mind. 12 Zeichen |
password_confirmation | string | erforderlich, muss mit password übereinstimmen |
Begrenzt auf 10 Anfragen pro Stunde pro IP-Adresse.
POST /v1/auth/loginRequest Body:
| Feld | Typ | Regeln |
|---|---|---|
email | string | erforderlich |
password | string | erforderlich |
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": "..." } }}E-Mail verifizieren
Abschnitt betitelt „E-Mail verifizieren“POST /v1/auth/verifyRequest Body:
| Feld | Typ | Regeln |
|---|---|---|
user_id | string | erforderlich |
token | string | erforderlich |
Passwort vergessen
Abschnitt betitelt „Passwort vergessen“POST /v1/auth/forgot-passwordSendet einen Link zum Zurücksetzen des Passworts (60 Minuten gültig). Begrenzt auf 10 Anfragen pro Stunde pro IP-Adresse.
| Feld | Typ | Regeln |
|---|---|---|
email | string | erforderlich |
platform | string | optional (web/mobile/desktop) |
Passwort zurücksetzen
Abschnitt betitelt „Passwort zurücksetzen“POST /v1/auth/reset-password| Feld | Typ | Regeln |
|---|---|---|
token | string | erforderlich |
email | string | erforderlich |
password | string | erforderlich, mind. 12 Zeichen |
Passkeys
Abschnitt betitelt „Passkeys“WebAuthn-Passkey-Login und -Verwaltung.
| Methode | Pfad | Beschreibung |
|---|---|---|
| POST | /v1/auth/passkey/authenticate-options | Login-Challenge abrufen |
| POST | /v1/auth/passkey/authenticate | Login abschließen |
| POST | /v1/auth/passkeys/register-options | Registrierungs-Challenge abrufen |
| POST | /v1/auth/passkeys/register | Neuen Passkey registrieren |
| GET | /v1/auth/passkeys | Passkeys 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/logoutWiderruft den im Authorization-Header verwendeten Token.
Alle anderen Sitzungen abmelden
Abschnitt betitelt „Alle anderen Sitzungen abmelden“POST /v1/auth/logout-allWiderruft alle Tokens außer dem, mit dem die Anfrage gestellt wurde.
Token erneuern
Abschnitt betitelt „Token erneuern“POST /v1/auth/refreshGibt 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" }}Tokens auflisten
Abschnitt betitelt „Tokens auflisten“GET /v1/auth/tokensGibt alle aktiven Tokens des authentifizierten Benutzers zurück. Jeder Token enthält einen booleschen Wert is_current.
Einen Token widerrufen
Abschnitt betitelt „Einen Token widerrufen“POST /v1/auth/revoke-tokenRequest Body:
| Feld | Typ | Regeln |
|---|---|---|
token_id | integer | erforderlich |