Nicht authentifizierte Benutzer
Wir führen eine PUT
Anfrage auf einem api/v1/account/password
Endpunkt durch und benötigen einen Parameter mit der entsprechenden Konto-E-Mail, um das Konto zu identifizieren, für das der Benutzer das Kennwort zurücksetzen (aktualisieren) möchte:
PUT : /api/v1/account/password?email={email@example.com}
Hinweis: Wie @DougDomeny in seinem Kommentar erwähnt hat, ist das Übergeben der E-Mail als Abfragezeichenfolge in der URL ein Sicherheitsrisiko. GET-Parameter werden bei der Verwendung nicht angezeigt https
(und Sie sollten https
für solche Anforderungen immer eine ordnungsgemäße Verbindung verwenden), es bestehen jedoch andere Sicherheitsrisiken. Weitere Informationen zu diesem Thema finden Sie in diesem Blogbeitrag hier .
Das Übergeben der E-Mail im Anforderungshauptteil wäre eine sicherere Alternative zum Übergeben als GET-Parameter:
PUT : /api/v1/account/password
Text anfordern:
{
"email": "email@example.com"
}
Die Antwort hat eine 202
akzeptierte Antwortbedeutung:
Die Anforderung wurde zur Verarbeitung angenommen, die Verarbeitung wurde jedoch nicht abgeschlossen. Auf die Anforderung kann möglicherweise reagiert werden oder nicht, da sie möglicherweise nicht zulässig ist, wenn die Verarbeitung tatsächlich stattfindet. Es gibt keine Möglichkeit, einen Statuscode von einer solchen asynchronen Operation erneut zu senden.
Der Benutzer erhält eine E-Mail an email@example.com
und die Verarbeitung der Aktualisierungsanforderung hängt von den Aktionen ab, die mit dem Link aus der E-Mail ausgeführt werden.
https://example.com/password-reset?token=1234567890
Das Öffnen des Links aus dieser E-Mail führt zu einem Formular zum Zurücksetzen des Kennworts in der Front-End-Anwendung, das das Token zum Zurücksetzen des Kennworts vom Link als Eingabe für ein verstecktes Eingabefeld verwendet (das Token ist Teil des Links als Abfragezeichenfolge). In einem weiteren Eingabefeld kann der Benutzer ein neues Passwort festlegen. Eine zweite Eingabe zur Bestätigung des neuen Passworts wird zur Validierung im Front-End verwendet (um Tippfehler zu vermeiden).
Hinweis: In der E-Mail können wir auch erwähnen, dass der Benutzer, falls er kein Zurücksetzen des Passworts initialisiert hat, die E-Mail ignorieren und die Anwendung weiterhin normal mit seinem aktuellen Passwort verwenden kann
Wenn das Formular mit dem neuen Passwort und dem Token als Eingabe gesendet wird, findet der Vorgang zum Zurücksetzen des Passworts statt. Die Formulardaten werden erneut mit einer PUT
Anfrage gesendet, diesmal jedoch einschließlich des Tokens, und wir ersetzen das Ressourcenkennwort durch einen neuen Wert:
PUT : /api/v1/account/password
Text anfordern:
{
"token":"1234567890",
"new":"password"
}
Die Antwort ist eine Antwort 204
ohne Inhalt
Der Server hat die Anforderung erfüllt, muss jedoch keinen Entitätskörper zurückgeben und möchte möglicherweise aktualisierte Metainformationen zurückgeben. Die Antwort kann neue oder aktualisierte Metainformationen in Form von Entity-Headern enthalten, die, falls vorhanden, der angeforderten Variante zugeordnet werden sollten.
Authentifizierte Benutzer
Für authentifizierte Benutzer, die ihr Passwort ändern möchten, PUT
kann die Anforderung sofort ohne E-Mail ausgeführt werden (das Konto, für das wir das Passwort aktualisieren, ist dem Server bekannt). In diesem Fall sendet das Formular zwei Felder:
PUT : /api/v1/account/password
Text anfordern:
{
"old":"password",
"new":"password"
}