POST/api/auth/login
เข้าสู่ระบบให้ผู้ใช้และออก Session-JWT พร้อมโทเค็นรีเฟรช นี่เป็นวิธีเดียวที่จะได้โทเค็นการเข้าถึงที่ใช้ได้สำหรับแดชบอร์ด — ไม่มีระบบคีย์ API สำหรับนักพัฒนาแยกต่างหาก
การยืนยันตัวตนและความปลอดภัย
ไม่ต้องยืนยันตัวตน
การหน่วงแบบค่อยเป็นค่อยไปสำหรับการโจมตีแบบ Brute-Force ต่ออีเมล/ชื่อผู้ใช้ (authGuard) -- ความพยายามที่ล้มเหลว 10 ครั้งภายใน 5 นาทีจะทำให้เกิดความล่าช้าเพิ่มขึ้น และตั้งแต่ 30 ครั้งจะถูกบล็อก
Idempotent (เรียกซ้ำได้ผลเหมือนเดิม): ไม่
พารามิเตอร์
identifier(body, string, จำเป็น)— ที่อยู่อีเมลหรือชื่อผู้ใช้password(body, string, จำเป็น)— รหัสผ่านตัวอย่างคำขอ
{"identifier":"user@example.com","password":"รหัสผ่านของคุณ"}ตัวอย่างการตอบกลับ
{"ok":true,"token":"<JWT, ใช้ได้ 12 ชม.>","refreshToken":"<Refresh-Token, ใช้ได้ 7 วัน, ใช้ได้ครั้งเดียว>","user":{"id":"...","tenant_id":"...","email":"user@example.com","role":"EMPLOYEE","roles":[],"permissions":[],"isMasterAdmin":false}}รหัสข้อผิดพลาด
401 INVALID_CREDENTIALS — อีเมล/ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง429 RATE_LIMIT_EXCEEDED — มีความพยายามที่ล้มเหลวมากเกินไปสำหรับตัวระบุหรือที่อยู่ IP นี้หลักฐานการทดสอบแบบสด
ตรวจสอบสดแล้วบนสแตกทดสอบที่แยกต่างหาก: กรณีสำเร็จ (200, JWT จริงพร้อม Refresh-Token) และกรณีล้มเหลว (401 เมื่อรหัสผ่านผิด)