POST/api/auth/reset-password
ตั้งรหัสผ่านใหม่โดยใช้โทเค็นรีเซ็ตที่ถูกต้อง
`POST /api/auth/reset-password` ตั้งรหัสผ่านใหม่โดยใช้ Token การรีเซ็ตที่ถูกต้อง เส้นทางนี้ไม่ต้องเข้าสู่ระบบอยู่ก่อน เพราะมีไว้สำหรับผู้ใช้ที่ไม่สามารถใช้รหัสผ่านเดิมได้อีก ใน Request-Body จะส่ง `token` และ `password` โดย Token มาจากอีเมลรีเซ็ตที่ส่งไปก่อนหน้านี้ และรหัสผ่านใหม่ต้องเป็นไปตามข้อกำหนดขั้นต่ำที่เซิร์ฟเวอร์กำหนด การเรียกนี้ไม่ใช่ idempotent หลังการรีเซ็ตสำเร็จ Token ที่ใช้แล้วจะถูกใช้ไปแล้วหรือไม่สามารถใช้เปลี่ยนรหัสผ่านอีกครั้งได้ ดังนั้นไคลเอนต์ต้องไม่ส่งคำขอที่ถูกยกเลิกโดยไม่ทราบสาเหตุซ้ำในลูปที่เร็ว แต่ควรแสดงผลลัพธ์และให้ผู้ใช้เริ่มกระบวนการรีเซ็ตใหม่ผ่านฟังก์ชันลืมรหัสผ่าน (Forgot-Password) เมื่อจำเป็น Token ที่ไม่ถูกต้อง หมดอายุ หรือถูกใช้ไปแล้ว รวมถึงรหัสผ่านที่ไม่เป็นไปตามข้อกำหนดขั้นต่ำ จะทำให้เกิด `400 VALIDATION_ERROR` ข้อความแจ้งข้อผิดพลาดสาธารณะไม่ควรเปิดเผยรายละเอียดบัญชีเพิ่มเติม Token และรหัสผ่านใหม่ต้องไม่ปรากฏในพารามิเตอร์ URL เครื่องมือวิเคราะห์ บันทึกสาธารณะ หรือภาพหน้าจอสำหรับซัพพอร์ต คำขอนี้ต้องอยู่ในขั้นตอนของแบบฟอร์มที่ป้องกันด้วย HTTPS เท่านั้น การตอบกลับที่สำเร็จคือ `{"ok":true}` ซึ่งยืนยันว่าเปลี่ยนรหัสผ่านแล้ว ไม่ได้หมายถึงการเข้าสู่ระบบใหม่โดยอัตโนมัติ หลังการรีเซ็ต ผู้ใช้ควรเข้าสู่ระบบตามปกติด้วยรหัสผ่านใหม่ เซสชันที่มีอยู่ต้องจัดการตามตรรกะจริงของแบ็กเอนด์ เอกสารต้องไม่อ้างว่ามีการออกจากระบบทุกอุปกรณ์แบบเหมารวม หากไม่มีหลักฐานยืนยัน การทดสอบสดที่มีหลักฐานครอบคลุมกรณีล้มเหลวด้วย Token ที่ไม่ถูกต้องและสถานะ 400 ตามที่คาดไว้ ไม่ได้ทดสอบการรีเซ็ตที่สำเร็จจริงแยกต่างหากด้วย Token ของระบบ Production เพื่อเป็นหลักฐานนี้ ข้อความต้องคงขอบเขตนี้ไว้อย่างชัดเจน และต้องไม่สรุปความสำเร็จแบบ End-to-End จากความคล้ายกับ Login หรือ Forgot Password
การยืนยันตัวตนและความปลอดภัย
ไม่ต้องยืนยันตัวตน
Idempotent (เรียกซ้ำได้ผลเหมือนเดิม): ไม่
พารามิเตอร์
token(body, string, จำเป็น)— โทเค็นรีเซ็ตจากอีเมลpassword(body, string, จำเป็น)— รหัสผ่านใหม่ตัวอย่างคำขอ
{"token":"<โทเค็นจากอีเมลรีเซ็ต>","password":"NewSecurePassword!"}ตัวอย่างการตอบกลับ
{"ok":true}รหัสข้อผิดพลาด
400 VALIDATION_ERROR — โทเค็นไม่ถูกต้อง หมดอายุ หรือรหัสผ่านไม่ตรงตามข้อกำหนดขั้นต่ำหลักฐานการทดสอบแบบสด
ตรวจสอบสดแล้วกรณีล้มเหลว (400, โทเค็นไม่ถูกต้อง); กรณีสำเร็จมีกลไกเหมือนกับ forgot-password/login ไม่ได้ทดสอบแยกด้วยโทเค็นรีเซ็ตจริง