การยืนยันตัวตน

Hotspot API ยืนยันตัวตนด้วยเฮดเดอร์ HTTP เพียงตัวเดียวคือ ApiKey ไม่มีขั้นตอนเข้าสู่ระบบแยกต่างหากและไม่มีโทเค็น คีย์จะถูกส่งไปกับทุกคำขอ

เฮดเดอร์#

คำขอ
POST /public/json/customer/inhotel HTTP/1.1
Host: test.hms.gen.tr
ApiKey: 017f1daf2d139
HotelCode: 1000
Content-Length: 0
เฮดเดอร์คำอธิบาย
ApiKeyจำเป็น คีย์ API แบบกำหนดเองที่สร้างในแผงควบคุมผู้ดูแลของ HMS (13 อักขระ) ระบบจะไม่สนใจช่องว่างที่อยู่ต้นและท้ายค่า และชื่อเฮดเดอร์ไม่คำนึงถึงตัวพิมพ์เล็ก/ใหญ่
HotelCodeแนะนำให้ส่ง ID ของโรงแรมใน HMS เซิร์ฟเวอร์ระบุโรงแรมจากคีย์และไม่ได้ใช้เฮดเดอร์นี้ในการตรวจสอบ ให้ส่งไว้เพื่อการบันทึก log และความเข้ากันได้ในอนาคต

คีย์มาจากไหน#

คีย์สร้างได้ที่แท็บ Custom API ของหน้า API ในแผงควบคุมผู้ดูแลของ HMS ของโรงแรม ช่องคำอธิบายใช้สำหรับระบุว่าคีย์นำไปใช้ที่ใด และสร้างคีย์ได้หลายคีย์ คีย์ที่ถูกลบในหน้าเดียวกันนี้จะใช้ไม่ได้ทันที

การยืนยันตัวตนไม่สำเร็จ#

หากไม่มีเฮดเดอร์ เฮดเดอร์ว่าง หรือไม่พบคีย์ใน HMS การตอบกลับจะเป็น HTTP 401 พร้อมเนื้อหานี้:

401 Unauthorized
{
    "success": 0
}

จะไม่มีรายละเอียดข้อผิดพลาดใด ๆ ให้ตรวจสอบตามลำดับนี้: ชื่อเฮดเดอร์คือ ApiKey ค่าตรงกับคีย์ที่คัดลอกจากแผงควบคุมทุกตัวอักษร และคีย์ยังคงอยู่ในรายการของแผงควบคุม อย่าลองส่งคำขอใหม่เมื่อได้รับ 401 เพราะผลลัพธ์จะไม่เปลี่ยนจนกว่าจะแก้ไขคีย์

บริบทของโรงแรม#

คีย์หนึ่งผูกกับโรงแรมเดียว การตอบกลับจึงมีเฉพาะผู้เข้าพักของโรงแรมนั้น สำหรับการติดตั้งที่ให้บริการหลายโรงแรม ให้ขอคีย์จากแผงควบคุมของแต่ละโรงแรมและจัดเก็บแยกตามโรงแรม การส่ง HotelCode อื่นจะไม่ได้ข้อมูลของโรงแรมอื่น เพราะคีย์เป็นตัวกำหนดโรงแรมเสมอ

การปกป้องคีย์#

  • เก็บคีย์ไว้ในการตั้งค่าของเซิร์ฟเวอร์ Hotspot หรือในตัวแปรสภาพแวดล้อม ห้ามใส่คีย์ไว้ใน HTML ของ captive portal หรือใน JavaScript ฝั่งไคลเอนต์
  • ส่วนที่ดึงรายการต้องทำงานฝั่งเซิร์ฟเวอร์ อุปกรณ์ของผู้เข้าพักต้องไม่เรียก HMS โดยตรง เพราะการตอบกลับมีข้อมูลระบุตัวตนของผู้เข้าพักทุกคน
  • หากสงสัยว่าคีย์รั่วไหล ให้ลบคีย์ในแผงควบคุมแล้วสร้างคีย์ใหม่ คีย์เก่าจะส่งคืน 401 ทันทีที่ถูกลบ