Nieuwierzytelnieni użytkownicy
Wykonujemy PUT
żądanie na api/v1/account/password
punkcie końcowym i wymagamy parametru z odpowiednim adresem e-mail konta, aby zidentyfikować konto, dla którego użytkownik chce zresetować (zaktualizować) hasło:
PUT : /api/v1/account/password?email={email@example.com}
Uwaga: Jak wspomniał @DougDomeny w swoim komentarzu, przekazywanie wiadomości e-mail jako ciągu zapytania w adresie URL stanowi zagrożenie bezpieczeństwa. Parametry GET nie są ujawniane podczas używania https
(i https
do takich żądań należy zawsze używać odpowiedniego połączenia), ale istnieją inne zagrożenia bezpieczeństwa. Możesz przeczytać więcej na ten temat w tym wpisie na blogu tutaj .
Przekazanie e-maila w treści żądania byłoby bezpieczniejszą alternatywą dla przekazania go jako parametru GET:
PUT : /api/v1/account/password
Treść żądania:
{
"email": "email@example.com"
}
Odpowiedź ma 202
zaakceptowaną odpowiedź, co oznacza:
Żądanie zostało przyjęte do realizacji, ale przetwarzanie nie zostało zakończone. Żądanie może ostatecznie zostać zrealizowane lub nie, ponieważ może zostać odrzucone, gdy faktycznie ma miejsce przetwarzanie. Nie ma możliwości ponownego wysłania kodu stanu z operacji asynchronicznej, takiej jak ta.
Użytkownik otrzyma wiadomość e-mail na adres, email@example.com
a przetwarzanie żądania aktualizacji zależy od działań podjętych za pomocą łącza z wiadomości e-mail.
https://example.com/password-reset?token=1234567890
Otwarcie linku z tego e-maila spowoduje przekierowanie do formularza resetowania hasła w aplikacji frontonu, który używa tokena resetowania hasła z linku jako danych wejściowych dla ukrytego pola wejściowego (token jest częścią łącza jako ciąg zapytania). Kolejne pole wejściowe umożliwia użytkownikowi ustawienie nowego hasła. Drugie wejście w celu potwierdzenia nowego hasła zostanie użyte do weryfikacji na interfejsie użytkownika (aby zapobiec literówkom).
Uwaga: w e-mailu możemy również wspomnieć, że jeśli użytkownik nie zainicjował żadnego resetowania hasła, może zignorować wiadomość e-mail i normalnie korzystać z aplikacji z obecnym hasłem
Po przesłaniu formularza z nowym hasłem i tokenem jako danymi wejściowymi nastąpi proces resetowania hasła. Dane formularza zostaną ponownie wysłane z PUT
żądaniem, ale tym razem z tokenem i zastąpimy hasło zasobu nową wartością:
PUT : /api/v1/account/password
Treść żądania:
{
"token":"1234567890",
"new":"password"
}
Odpowiedź będzie 204
brak zawartości odpowiedź
Serwer spełnił żądanie, ale nie musi zwracać treści encji i może chcieć zwrócić zaktualizowane metainformacje. Odpowiedź MOŻE zawierać nowe lub zaktualizowane metainformacje w postaci nagłówków encji, które, jeśli są obecne, POWINNY być skojarzone z żądanym wariantem.
Uwierzytelnieni użytkownicy
W przypadku uwierzytelnionych użytkowników, którzy chcą zmienić swoje hasło, PUT
żądanie może zostać zrealizowane natychmiast, bez wiadomości e-mail (konto, dla którego aktualizujemy hasło, jest znane serwerowi). W takim przypadku formularz będzie zawierał dwa pola:
PUT : /api/v1/account/password
Treść żądania:
{
"old":"password",
"new":"password"
}