Password Recovery Request
POST/company/auth/recovery
Endpunkt zur Anforderung der Passwortwiederherstellung für Unternehmensbenutzer.
Führt die folgenden Operationen aus:
- Validiert das E-Mail-Format
- Sucht den Benutzer in der Datenbank
- Generiert ein eindeutiges Wiederherstellungstoken
- Sendet eine E-Mail mit einem Link zum Zurücksetzen des Passworts
Detaillierter Ablauf:
- Client sendet E-Mail im JSON-Format
- Server validiert das E-Mail-Format (401 bei ungültigem Format)
- Sucht Benutzer anhand der E-Mail
- Generiert ein zufälliges Token
- Speichert das Token in der Datenbank, verknüpft mit dem Benutzer
- Sendet eine E-Mail mit einem Link, der das Token enthält
- 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_FOUNDzurück - Wenn der Benutzer deaktiviert ist: Gibt 200 mit
USER_DISABLEDzurü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>