Quali sono le funzionalità di un'operazione di ripristino della password?
- Cambia qualcosa.
- C'è un valore su cui è impostato.
- Solo alcune persone possono farlo (l'utente, un amministratore o entrambi, forse con regole diverse su come possono farlo).
Il punto 1 qui significa che non puoi usare GET, devi POST qualcosa che rappresenta l'operazione di modifica della password a un URI che rappresenta una risorsa che gestisce le modifiche della password, o PUT qualcosa che rappresenta la nuova password a un URI che rappresenta la password o che rappresenta qualcosa (es. l'utente) di cui quella password è una funzionalità.
Generalmente verremmo POST, non ultimo perché può essere imbarazzante PUTting qualcosa che non possiamo in seguito ottenere e, naturalmente, non possiamo ottenere la password.
Il punto 2 sarà quindi i dati che rappresentano la nuova password, in ciò che viene POSTATO.
Il punto 3 significa che dovremo autorizzare la richiesta, il che significa che se l'utente è l'utente corrente avremo bisogno che la password corrente ci sia provata (anche se non necessariamente ricevere la password corrente, se ad es. un hash la sfida basata su base è stata utilizzata per dimostrarne la conoscenza senza inviarla).
L'URI dovrebbe quindi essere qualcosa come <http://example.net/changeCurrentUserPassword>
o <http://example.net/users/joe/changePassword>
.
Potremmo decidere di ricevere la password corrente nei dati POST e nel meccanismo generale di autorizzazione in uso.