Skip to content

API: auth-and-invites

Ort: work7_laendletech/docs/api/api-auth-and-invites.md

Überblick

  • Base-URL / Prefix: /api/auth, /api/invites, /api/admin/access-invite
  • Auth: Oeffentliche Endpunkte fuer Registrierung, Passwort- und Verifizierungsfluesse; teilweise eingeladener oder session-basierter Zugriff
  • Format: JSON

Endpoint(s)

POST /api/auth/register

Zweck:

Registriert Unternehmen und initialen Benutzer, legt Onboarding-State an und versendet Verifizierungs-E-Mail.

Request

FeldTypPflichtBeschreibung
companyNamestringjaFirmenname
companySlugstringjaFirmen-ID / Slug
adminNamestringjaName des initialen Benutzers
adminEmailstringjaLogin-E-Mail
adminPasswordstringjaPasswort gemaess Passwort-Policy
acceptedTermsbooleanjaAGB akzeptiert
acceptedPrivacybooleanjaDatenschutz akzeptiert
inviteTokenstringneinEinladungstoken, falls Self-Registration deaktiviert ist

Response 200

json
{
  "success": true,
  "message": "Unternehmen registriert. Prüfen Sie Ihre E-Mail zur Bestätigung.",
  "company": {
    "id": 1,
    "name": "Muster GmbH",
    "company_id": "muster-gmbh"
  },
  "user": {
    "id": 10,
    "email": "admin@example.com",
    "name": "Max Muster"
  }
}

Fehler

HTTPBedeutungBody-Hinweis
400Validierung / Dubletteerror, ggf. details
403Registrierung nicht erlaubt / Einladung mismatcherror
429Rate Limiterror, Retry-After Header
500Serverfehlererror

GET /api/auth/verify-email

Zweck:

Bestaetigt E-Mail-Verifikation ueber Token-Link.

Request

FeldTypPflichtBeschreibung
tokenquery stringjaVerifikationstoken

Response 200

json
{
  "success": true
}

Fehler

HTTPBedeutungBody-Hinweis
400Token fehlt/ungueltigerror
410Token abgelaufenerror

POST /api/auth/resend-verification

Zweck:

Versendet die Verifikations-E-Mail erneut.

POST /api/auth/forgot-password

Zweck:

Startet den Passwort-Reset-Prozess per E-Mail.

POST /api/auth/reset-password

Zweck:

Setzt ein Passwort mit gueltigem Reset-Token neu.

POST /api/auth/[...nextauth]

Zweck:

Session- und Login-Endpunkt fuer NextAuth Credentials.

GET /api/invites/accept

Zweck:

Prueft oder verarbeitet Einladungsannahme via Link.

POST /api/invites/set-password

Zweck:

Setzt Passwort im Einladungsfluss.

POST /api/admin/access-invite

Zweck:

Erzeugt oder verschickt administrative Einladungen fuer Zugriff.

Rate Limiting / Limits

  • Max Requests: Registrierung ist explizit rate-limitiert; weitere Auth-Fluesse sollten ebenfalls als sensibel betrachtet werden
  • Timeout: Standard Next.js Route Handler
  • Max Payload: JSON-Body, klein bis mittelgross

Breaking Changes / Versionierung

  • Kein explizites URL-Versioning; Breaking Changes muessen ueber Dokumentation und UI-Rollout abgestimmt werden.

Beispiel (curl)

bash
curl -sS -X POST http://localhost:3000/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "companyName":"Muster GmbH",
    "companySlug":"muster-gmbh",
    "adminName":"Max Muster",
    "adminEmail":"admin@example.com",
    "adminPassword":"Secret123!",
    "acceptedTerms":true,
    "acceptedPrivacy":true
  }'

Verwandte Notes

  • Feature-Spec: work7
  • OpenAPI/Schema: /api/swagger

Follow-ups

  • [ ] Postman Collection prüfen: passt es in bestehende Collection? Sonst neu anlegen → work7_laendletech/src/postman/ 📅 2026-04-16
  • [ ] In Feature-Spec verlinken falls zugehörig 📅 2026-04-16

Work7 · Software für Handwerksbetriebe