เปลี่ยนรหัสผ่าน
ใช้งานได้POST
/api/v1/auth/change-passwordสมาชิกที่ login อยู่เปลี่ยนรหัสผ่านเอง — ยืนยันรหัสเดิมแล้วตั้งรหัสใหม่ · session ปัจจุบันใช้ต่อได้ ไม่ต้อง login ใหม่
เปลี่ยนสำเร็จแล้ว session ปัจจุบันยังใช้ได้ต่อ (ไม่ revoke)
Headers
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| Authorization | string | ใช่ | ใช้ — แนบ Bearer <access_token> ของสมาชิก |
| X-Api-Key | string | ใช่ | API key ของ agent (ak_…) จากหน้า bo |
| X-Timestamp | string | ใช่ | เวลา sign เป็น unix milliseconds (คลาดเคลื่อนได้ ±300 วินาที) |
| X-Nonce | string | ใช่ | ค่าไม่ซ้ำต่อ request (UUIDv4) กัน replay |
| X-Signature | string | ใช่ | hex(HMAC-SHA256(secret, canonical)) — ดูหน้า Authentication |
| X-Player-IP | string | — | IP จริงของผู้เล่น (IPv4/IPv6) — แนะนำให้ส่ง (ใช้ใน login history) |
| X-Player-UA | string | — | User-Agent ของผู้เล่น (optional — ลง login history) |
| X-Request-Id | string | — | correlation id ของฝั่งคุณ — ระบบ echo กลับใน request_uuid (แนะนำให้ส่ง) |
| x-lang | string | — | th (default) หรือ en — ภาษาของ message |
Request bodyapplication/json
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| current_password | string | ใช่ | รหัสผ่านปัจจุบัน — ระบบ verify กับ hash ที่เก็บไว้ก่อนเสมอ ไม่ตรง → 1005 |
| new_password | string | ใช่ | รหัสผ่านใหม่ 6-72 ตัวอักษร (เกณฑ์เดียวกับตอนสมัคร) |
ตัวอย่าง request
{
"current_password": "P@ssw0rd123",
"new_password": "N3wP@ssw0rd"
}Response
ฟิลด์ใน data
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| changed | boolean | — | true = เปลี่ยนรหัสผ่านแล้ว — login ครั้งถัดไปใช้รหัสใหม่ ส่วน session/token ชุดปัจจุบันยังใช้ได้ตามปกติ |
ตัวอย่าง response
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": {
"changed": true
},
"request_uuid": "5b8d2f91-3c47-4e60-a1d9-7f2e8c4b0a53"
}Error codes ที่พบได้
| code | ชื่อ | HTTP | ข้อความ |
|---|---|---|---|
| 1001 | UNAUTHORIZED | 401 | ไม่ได้รับอนุญาตไม่ได้แนบ Authorization: Bearer |
| 1007 | TOKEN_INVALID | 401 | โทเค็นไม่ถูกต้องaccess token ไม่ถูกต้อง/หมดอายุ หรือ session ถูกเพิกถอนแล้ว (logout) |
| 1005 | INVALID_CREDENTIALS | 401 | ข้อมูลเข้าสู่ระบบไม่ถูกต้องcurrent_password ไม่ตรงกับรหัสปัจจุบัน |
| 1002 | FORBIDDEN | 403 | ไม่มีสิทธิ์เข้าถึงsession เป็นโหมด impersonation (อ่านอย่างเดียว) — เปลี่ยนรหัสผ่านไม่ได้ |
| 4001 | VALIDATION_ERROR | 400 | ข้อมูลไม่ถูกต้องnew_password สั้นกว่า 6 หรือยาวกว่า 72 ตัวอักษร |
| 9003 | TOO_MANY_REQUESTS | 429 | คำขอมากเกินไป กรุณาชะลอความเร็วเกิน rate limit ของกลุ่ม auth (10 ครั้ง/นาที/IP) |