Автентифікація
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 | Рекомендований. Ідентифікатор готелю в HMS. Сервер визначає готель за ключем і не використовує цей заголовок для перевірки; надсилайте його для журналювання й сумісності в майбутньому. |
Звідки береться ключ#
Ключ створюється на вкладці Custom API сторінки API у панелі адміністратора HMS готелю. Поле опису призначене для позначки, де використовується ключ; можна створити кілька ключів. Ключ, видалений на цій самій сторінці, одразу стає недійсним.
Помилка автентифікації#
Якщо заголовок відсутній або порожній чи ключ не знайдено в HMS, повертається HTTP 401 з таким тілом:
{
"success": 0
}Подробиць про помилку не надається. Перевірте в такому порядку: назва заголовка — ApiKey, значення точно збігається з ключем, скопійованим із панелі, і ключ досі є в списку в панелі. Не повторюйте запит після 401: результат не зміниться, доки ключ не буде виправлено.
Контекст готелю#
Ключ прив’язаний до одного готелю, і відповідь містить лише гостей цього готелю. Якщо інсталяція обслуговує кілька готелів, отримайте ключ у власній панелі кожного готелю й зберігайте ключі окремо для кожного з них. Інший HotelCode не поверне дані іншого готелю — готель завжди визначає ключ.
Захист ключа#
- Зберігайте ключ у конфігурації сервера hotspot або в змінній середовища; ніколи не додавайте його до HTML captive-порталу чи клієнтського JavaScript.
- Компонент, який отримує список, має працювати на сервері. Пристрої гостей не повинні звертатися до HMS напряму: відповідь містить особисті дані всіх гостей.
- Якщо ви підозрюєте, що ключ витік, видаліть його в панелі й створіть новий. Старий ключ повертає
401, щойно його видалено.