Xác thực

Hotspot API xác thực bằng một header HTTP duy nhất: ApiKey. Không có bước đăng nhập riêng và không có token; khóa được gửi trong mọi yêu cầu.

Header#

Yêu cầu
POST /public/json/customer/inhotel HTTP/1.1
Host: test.hms.gen.tr
ApiKey: 017f1daf2d139
HotelCode: 1000
Content-Length: 0
HeaderMô tả
ApiKeyBắt buộc. Khóa API tùy chỉnh được tạo trong bảng quản trị HMS (13 ký tự). Khoảng trắng ở đầu và cuối được bỏ qua; tên header không phân biệt chữ hoa chữ thường.
HotelCodeKhuyến nghị. ID HMS của khách sạn. Máy chủ xác định khách sạn từ khóa và không dùng header này để xác thực; hãy gửi để phục vụ ghi log và tương thích về sau.

Khóa lấy ở đâu#

Khóa được tạo trên thẻ Custom API của trang API trong bảng quản trị HMS của khách sạn. Trường mô tả dùng để ghi chú nơi sử dụng khóa; bạn có thể tạo nhiều khóa. Khóa bị xóa trên cùng trang đó sẽ mất hiệu lực ngay lập tức.

Xác thực thất bại#

Nếu header bị thiếu hoặc trống, hoặc không tìm thấy khóa trong HMS, phản hồi là HTTP 401 với nội dung sau:

401 Unauthorized
{
    "success": 0
}

API không trả về chi tiết lỗi. Hãy kiểm tra theo thứ tự: tên header là ApiKey, giá trị đúng y như khóa sao chép từ bảng quản trị, và khóa vẫn còn trong danh sách của bảng quản trị. Không thử lại khi gặp 401; kết quả sẽ không thay đổi cho đến khi khóa được sửa.

Ngữ cảnh khách sạn#

Mỗi khóa gắn với một khách sạn; phản hồi chỉ chứa khách của khách sạn đó. Với bản cài đặt phục vụ nhiều khách sạn, hãy lấy khóa từ bảng quản trị riêng của từng khách sạn và lưu theo từng khách sạn. Gửi HotelCode khác không trả về dữ liệu của khách sạn khác; khóa luôn quyết định khách sạn.

Bảo vệ khóa#

  • Lưu khóa trong cấu hình của máy chủ hotspot hoặc trong biến môi trường; tuyệt đối không đặt khóa trong HTML của captive portal hay JavaScript phía client.
  • Thành phần lấy danh sách phải chạy ở phía máy chủ. Thiết bị của khách không được gọi trực tiếp đến HMS; phản hồi chứa thông tin nhận dạng của mọi khách.
  • Nếu nghi ngờ khóa bị lộ, hãy xóa khóa trong bảng quản trị và tạo khóa mới. Khóa cũ trả về 401 ngay khi bị xóa.
Cập nhật lần cuối: 21 tháng 9, 2026Phát hiện lỗi? Hãy cho chúng tôi biết