Jakie są funkcje operacji resetowania hasła?
- To coś zmienia.
- Istnieje wartość, która jest ustawiona.
- Tylko niektóre osoby mogą to robić (użytkownik, administrator lub jedno lub drugie, być może z różnymi zasadami, jak to zrobić).
Punkt 1 tutaj oznacza, że nie możesz użyć GET, musisz albo POST wysłać coś reprezentującego operację zmiany hasła do identyfikatora URI reprezentującego zasób, który obsługuje zmiany hasła, lub PUT coś reprezentującego nowe hasło do identyfikatora URI reprezentującego hasło lub reprezentującego coś (np. użytkownika), którego hasło jest funkcją.
Zazwyczaj POST, zwłaszcza dlatego, że może być niewygodne WYKŁADANIE czegoś, czego nie możemy później uzyskać i oczywiście nie możemy uzyskać hasła.
Punkt 2 będzie zatem danymi reprezentującymi nowe hasło, w tym, co jest POST.
Punkt 3 oznacza, że będziemy musieli autoryzować żądanie, co oznacza, że jeśli użytkownik jest bieżącym użytkownikiem, będziemy potrzebować aktualnego hasła, aby nam je udowodnić (choć niekoniecznie otrzymamy aktualne hasło, jeśli np. Wyzwanie oparte na haszowaniu służyło do udowodnienia znajomości go bez wysyłania go).
URI powinien zatem być podobny do <http://example.net/changeCurrentUserPassword>
lub <http://example.net/users/joe/changePassword>
.
Możemy zdecydować, że chcemy otrzymać aktualne hasło w danych POST, a także w ogólnym mechanizmie autoryzacji.