POST/api/public/access-request/email/start-verification
ส่งรหัสยืนยัน 6 หลักที่มีอายุ 10 นาทีไปยังที่อยู่อีเมลที่ระบุ — เป็นขั้นตอนแรกก่อนยื่นคำขอเข้าถึง
`POST /api/public/access-request/email/start-verification` เริ่มการยืนยันอีเมลสำหรับคำขอสิทธิ์เข้าใช้งานแบบสาธารณะ คำขอนี้ไม่ต้องเข้าสู่ระบบ และมีที่อยู่ที่ต้องตรวจสอบอยู่ในฟิลด์ `email` ของ Body เมื่อประมวลผลสำเร็จ ระบบจะส่งรหัสยืนยันหกหลักซึ่งใช้ได้สิบนาที การตอบกลับประกอบด้วย `ok`, `verification_id`, `expires_in_minutes` และ `resend_cooldown_seconds` ต้องใช้ `verification_id` ร่วมกับที่อยู่อีเมลเดิมและรหัสที่ได้รับในเส้นทาง Verify ถัดไป ค่านี้ไม่ใช่โทเค็นเข้าสู่ระบบ และต้องไม่ถูกจัดเก็บเป็นตัวระบุผู้ใช้แบบถาวรหรือบันทึกไว้แบบสาธารณะ ปลายทางนี้ไม่เป็น Idempotent การเรียกที่สำเร็จหลายครั้งอาจสร้างกระบวนการยืนยันหลายรายการหรือรหัสใหม่ ดังนั้นจึงมีขีดจำกัดที่เข้มงวดตาม IP คือสิบคำขอภายใน 15 นาที นอกจากนี้ การตอบกลับยังระบุช่วงห้ามส่งซ้ำ 60 วินาที ในช่วงเวลานี้ หน้าจอไม่ควรเรียกให้ส่งซ้ำ และควรแสดงเวลารอที่เหลืออยู่อย่างเข้าใจง่าย หากเกินขีดจำกัด เส้นทางจะตอบกลับด้วย `429 RATE_LIMIT_EXCEEDED` หากไม่สามารถส่งรหัสได้เนื่องจากข้อผิดพลาดในการจัดส่ง จะมีการระบุ `502 MAIL_NOT_SENT` ไว้ กรณีเหล่านี้ต้องจัดการแยกกัน: Rate-Limit แก้ได้ด้วยการรอ ส่วนข้อผิดพลาดของอีเมลต้องมีที่อยู่ที่ติดต่อได้และการจัดส่งที่ทำงานได้ ข้อมูลลับหรือข้อมูลภายในของเซิร์ฟเวอร์อีเมลไม่ควรอยู่ในข้อความแสดงข้อผิดพลาด กรณีสำเร็จได้รับการยืนยันแบบสดด้วย `verification_id` จริง ข้อความที่เกี่ยวข้องได้รับผ่านเซิร์ฟเวอร์ Fake-SMTP ของเราเอง และอ่านรหัสหกหลักจากเนื้อหาอีเมลจริง นอกจากนี้ยังสังเกตพบกรณีเชิงลบ 429 หลังจากการเรียกซ้ำหลายครั้ง สามารถระบุหลักฐานนี้ได้ตามนี้เท่านั้น ซึ่งไม่ได้หมายความว่าคำขอสิทธิ์เข้าใช้งานหรือการชำระเงินเสร็จสมบูรณ์แล้ว
การยืนยันตัวตนและความปลอดภัย
ไม่ต้องยืนยันตัวตน
strictLimiter: 10 คำขอ/15 นาที, ผูกกับ IP
ขีดจำกัดอัตรา (Rate-Limit): 10 Anfragen pro 15 Minuten (IP-basiert)
Idempotent (เรียกซ้ำได้ผลเหมือนเดิม): ไม่
พารามิเตอร์
email(body, string, จำเป็น)— ที่อยู่อีเมลที่ต้องการยืนยันตัวอย่างคำขอ
{"email":"max@example.com"}ตัวอย่างการตอบกลับ
{"ok":true,"verification_id":"<UUID>","expires_in_minutes":10,"resend_cooldown_seconds":60}รหัสข้อผิดพลาด
429 RATE_LIMIT_EXCEEDED — มีคำขอไปยังจุดปลายทางที่ละเอียดอ่อนนี้มากเกินไป502 MAIL_NOT_SENT — ไม่สามารถส่งรหัสยืนยันได้ (เกิดข้อผิดพลาดในการจัดส่งอีเมล)หลักฐานการทดสอบแบบสด
ตรวจสอบสดแล้ว: สำเร็จ (200, verification_id จริง); รับอีเมลที่เกี่ยวข้องผ่านเซิร์ฟเวอร์ SMTP จำลองของตนเอง อ่านรหัส 6 หลักจากเนื้อหาอีเมลจริง พบกรณีล้มเหลว 429 หลังเรียกซ้ำหลายครั้ง