अनधिकृत उपयोगकर्ता
हम PUTएक api/v1/account/passwordसमापन बिंदु पर एक अनुरोध करते हैं और उस खाते की पहचान करने के लिए संबंधित खाता ईमेल के साथ एक पैरामीटर की आवश्यकता होती है, जिसके लिए उपयोगकर्ता पासवर्ड रीसेट (अपडेट) करना चाहता है:
PUT : /api/v1/account/password?email={email@example.com}
नोट: जैसा कि @DougDomeny ने अपनी टिप्पणी में उल्लेख किया है कि ईमेल को url में क्वेरी स्ट्रिंग के रूप में पास करना एक सुरक्षा जोखिम है। उपयोग करते समय GET के मापदंडों को उजागर नहीं किया जाता है https(और आपको हमेशा httpsऐसे अनुरोधों के लिए एक उचित कनेक्शन का उपयोग करना चाहिए ) लेकिन अन्य सुरक्षा जोखिम शामिल हैं। आप यहाँ इस ब्लॉग पोस्ट में इस विषय पर अधिक पढ़ सकते हैं ।
अनुरोध निकाय में ईमेल पास करना, इसे GET परम के रूप में पारित करने के लिए एक अधिक सुरक्षित विकल्प होगा:
PUT : /api/v1/account/password
अनुरोध निकाय:
{
"email": "email@example.com"
}
प्रतिक्रिया का एक 202स्वीकृत प्रतिक्रिया अर्थ है:
प्रसंस्करण के लिए अनुरोध स्वीकार कर लिया गया है, लेकिन प्रसंस्करण पूरा नहीं हुआ है। अनुरोध पर कार्रवाई हो सकती है या नहीं हो सकती है, क्योंकि यह तब हो सकता है जब प्रसंस्करण वास्तव में होता है। इस तरह के अतुल्यकालिक ऑपरेशन से एक स्थिति कोड को फिर से भेजने के लिए कोई सुविधा नहीं है।
उपयोगकर्ता को एक ईमेल प्राप्त होगा email@example.comऔर अद्यतन अनुरोध संसाधित करना ईमेल से लिंक के साथ की गई क्रियाओं पर निर्भर करता है।
https://example.com/password-reset?token=1234567890
इस ईमेल से लिंक को खोलने से सामने के छोर पर एक रीसेट पासवर्ड का आवेदन होगा जो लिंक से रीसेट पासवर्ड टोकन का उपयोग करता है एक छिपे हुए इनपुट क्षेत्र के लिए इनपुट के रूप में (टोकन क्वेरी स्ट्रिंग के रूप में लिंक का हिस्सा है)। एक अन्य इनपुट फ़ील्ड उपयोगकर्ता को एक नया पासवर्ड सेट करने की अनुमति देता है। नए पासवर्ड की पुष्टि करने के लिए एक दूसरा इनपुट फ्रंट-एंड पर सत्यापन के लिए उपयोग किया जाएगा (टाइपो को रोकने के लिए)।
नोट: ईमेल में हम यह भी उल्लेख कर सकते हैं कि यदि उपयोगकर्ता ने किसी भी पासवर्ड रीसेट को प्रारंभ नहीं किया है, तो वह ईमेल को अनदेखा कर सकता है और अपने वर्तमान पासवर्ड के साथ सामान्य रूप से एप्लिकेशन का उपयोग कर सकता है।
जब फॉर्म नए पासवर्ड और टोकन के साथ सबमिट किया जाता है, तो इनपुट के रूप में रीसेट पासवर्ड प्रक्रिया होगी। फॉर्म डेटा PUTफिर से एक अनुरोध के साथ भेजा जाएगा लेकिन इस बार टोकन सहित और हम संसाधन पासवर्ड को एक नए मान के साथ बदल देंगे:
PUT : /api/v1/account/password
अनुरोध निकाय:
{
"token":"1234567890",
"new":"password"
}
प्रतिक्रिया 204कोई सामग्री प्रतिक्रिया नहीं होगी
सर्वर ने अनुरोध पूरा कर लिया है, लेकिन उसे निकाय-निकाय को वापस करने की आवश्यकता नहीं है, और अद्यतन मेटैनफॉर्मेशन वापस करना चाह सकता है। प्रतिक्रिया MAY में इकाई-हेडर के रूप में नए या अपडेट किए गए मेटैनफॉर्मेशन शामिल हैं, जो कि यदि वर्तमान SHOULD को अनुरोधित संस्करण के साथ जोड़ा जाता है।
प्रमाणीकृत उपयोगकर्ता
प्रामाणिक उपयोगकर्ताओं के लिए जो अपना पासवर्ड बदलना चाहते हैं, PUTअनुरोध ईमेल के बिना तुरंत किया जा सकता है (जिस खाते के लिए हम पासवर्ड अपडेट कर रहे हैं वह सर्वर को पता है)। इस तरह के मामले में फॉर्म दो फ़ील्ड सबमिट करेगा:
PUT : /api/v1/account/password
अनुरोध निकाय:
{
"old":"password",
"new":"password"
}