Zum Hauptinhalt springen

Password Recovery Request

POST 

/company/auth/recovery

Endpunkt zur Anforderung der Passwortwiederherstellung für Unternehmensbenutzer.
Führt die folgenden Operationen aus:

  1. Validiert das E-Mail-Format
  2. Sucht den Benutzer in der Datenbank
  3. Generiert ein eindeutiges Wiederherstellungstoken
  4. Sendet eine E-Mail mit einem Link zum Zurücksetzen des Passworts

Detaillierter Ablauf:

  1. Client sendet E-Mail im JSON-Format
  2. Server validiert das E-Mail-Format (401 bei ungültigem Format)
  3. Sucht Benutzer anhand der E-Mail
  4. Generiert ein zufälliges Token
  5. Speichert das Token in der Datenbank, verknüpft mit dem Benutzer
  6. Sendet eine E-Mail mit einem Link, der das Token enthält
  7. Der Link leitet zum Formular für ein neues Passwort weiter

Sicherheit:

  • Aus Sicherheitsgründen wird immer 200 OK zurückgegeben, um registrierte E-Mails nicht preiszugeben
  • Token haben eine begrenzte Gültigkeitsdauer
  • Jedes Token ist nur einmal verwendbar
  • Erfordert HTTPS
  • Prüft auch deaktivierte Benutzer (Soft Delete)

Besonderes Verhalten:

  • Wenn die E-Mail nicht existiert: Gibt 200 mit USER_NOT_FOUND zurück
  • Wenn der Benutzer deaktiviert ist: Gibt 200 mit USER_DISABLED zurück
  • Demo-Benutzer (cia@testing.com, ciamu@testing.com): Geben 200 zurück, ohne eine E-Mail zu senden

Beispielanfrage:

{
email: benutzer@unternehmen.com
}

Antwortbeispiele:

Gültige E-Mail gefunden:

{
op: recovery,
message: RECOVERY_EMAIL_SENT,
email: benutzer@unternehmen.com
}

E-Mail nicht gefunden (aus Sicherheitsgründen 200):

\{
op: recovery

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"lang","in":"query","description":"Sprache für die Wiederherstellungs-E-Mail","required":false,"schema":{"type":"string","default":"en","enum":["en","es"]}}]}
>

</ParamsDetails>

<RequestSchema
title={"Body"}
body={{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"E-Mail des Benutzers zum Zurücksetzen des Passworts","example":"usuario@empresa.com"}},"required":["email"],"title":"RecoveryRequest"}}},"required":true}}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Verarbeitet (gibt aus Sicherheitsgründen immer 200 zurück)","content":{"application/json":{"schema":{"type":"object","properties":{"op":{"type":"string","enum":["recovery"],"example":"recovery"},"message":{"type":"string","enum":["RECOVERY_EMAIL_SENT","USER_NOT_FOUND","USER_DISABLED"],"example":"RECOVERY_EMAIL_SENT"},"email":{"type":"string","format":"email","example":"usuario@empresa.com"}}}}},"headers":{}},"401":{"description":"E-Mail nicht angegeben oder ungültiges Format","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","example":401},"message":{"type":"string","example":"NOT_VALID"}}}}},"headers":{}}}}
>

</StatusCodes>