Was sind die Merkmale eines Passwort-Reset-Vorgangs?
- Es ändert sich etwas.
- Es gibt einen Wert, auf den es festgelegt ist.
- Nur einige Personen dürfen dies tun (der Benutzer, ein Administrator oder einer von beiden, möglicherweise mit unterschiedlichen Regeln, wie dies getan werden kann).
Punkt 1 bedeutet hier, dass Sie GET nicht verwenden können. Sie müssen entweder etwas, das die Kennwortänderungsoperation darstellt, in einen URI POSTEN, der eine Ressource darstellt, die Kennwortänderungen behandelt, oder etwas, das das neue Kennwort darstellt, in einen URI PUTEN, der das Kennwort darstellt oder etwas darstellt (z. B. den Benutzer), dessen Passwort ein Merkmal ist.
Im Allgemeinen würden wir POSTEN, nicht zuletzt, weil es unangenehm sein kann, etwas zu schreiben, das wir später nicht bekommen können, und natürlich können wir das Passwort nicht bekommen.
Punkt 2 werden daher Daten sein, die das neue Passwort darstellen, in dem was gepostet wird.
Punkt 3 bedeutet, dass wir die Anfrage autorisieren müssen. Wenn der Benutzer der aktuelle Benutzer ist, muss das aktuelle Kennwort überprüft werden (es muss jedoch nicht unbedingt das aktuelle Kennwort erhalten werden, wenn z. B. eine hashbasierte Abfrage vorliegt wurde verwendet, um das Wissen darüber zu beweisen, ohne es zu senden).
Die URI sollte daher so ähnlich wie <http://example.net/changeCurrentUserPassword>
oder sein <http://example.net/users/joe/changePassword>
.
Möglicherweise möchten wir das aktuelle Kennwort sowohl in den POST-Daten als auch im verwendeten allgemeinen Autorisierungsmechanismus erhalten.