ผู้ใช้ที่ไม่ได้ตรวจสอบสิทธิ์
เราทำการ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
เนื้อหาที่ไม่ตอบสนอง
เซิร์ฟเวอร์ได้ดำเนินการตามคำขอแล้ว แต่ไม่จำเป็นต้องส่งคืนเอนทิตี - ร่างกายและอาจต้องการส่งคืนข้อมูลเมตาที่อัปเดต การตอบกลับอาจรวมข้อมูลเมตาเนียใหม่หรือที่อัปเดตในรูปแบบของส่วนหัวเอนทิตีซึ่งหากมีอยู่ควรเชื่อมโยงกับตัวแปรที่ร้องขอ
ผู้ใช้ที่พิสูจน์ตัวตน
สำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้องและต้องการเปลี่ยนรหัสผ่านPUT
สามารถดำเนินการตามคำขอได้ทันทีโดยไม่ต้องใช้อีเมล (บัญชีที่เรากำลังอัปเดตรหัสผ่านนั้นเป็นที่รู้จักในเซิร์ฟเวอร์) ในกรณีนี้แบบฟอร์มจะส่งสองช่อง:
PUT : /api/v1/account/password
ขอเนื้อหา:
{
"old":"password",
"new":"password"
}