Autenticazione
L’API Hotspot si autentica con un solo header HTTP: ApiKey. Non c’è un login separato né un token: la chiave viene inviata a ogni richiesta.
Header#
POST /public/json/customer/inhotel HTTP/1.1
Host: test.hms.gen.tr
ApiKey: 017f1daf2d139
HotelCode: 1000
Content-Length: 0| Header | Descrizione |
|---|---|
ApiKey | Obbligatorio. La chiave API personalizzata generata nel pannello di amministrazione di HMS (13 caratteri). Gli spazi iniziali e finali vengono ignorati; il nome dell’header non distingue tra maiuscole e minuscole. |
HotelCode | Consigliato. L’ID HMS dell’hotel. Il server ricava l’hotel dalla chiave e non usa questo header per la validazione; invialo per il logging e per la compatibilità futura. |
Da dove proviene la chiave#
La chiave viene generata nella scheda Custom API della pagina API del pannello di amministrazione HMS dell’hotel. Il campo della descrizione serve ad annotare dove viene usata la chiave; è possibile generare più chiavi. Una chiave eliminata nella stessa pagina diventa subito non valida.
Autenticazione non riuscita#
Se l’header manca o è vuoto, oppure la chiave non esiste in HMS, la risposta è HTTP 401 con questo corpo:
{
"success": 0
}Non viene fornito alcun dettaglio sull’errore. Verifica in quest’ordine: che il nome dell’header sia ApiKey, che il valore corrisponda esattamente alla chiave copiata dal pannello e che la chiave sia ancora presente nel pannello. Non ripetere una richiesta che ha restituito 401: il risultato non cambierà finché la chiave non viene corretta.
Contesto dell’hotel#
Una chiave è legata a un solo hotel: la risposta contiene solo gli ospiti di quell’hotel. Per un’installazione che serve più hotel, ottieni una chiave dal pannello di ciascun hotel e conservale separatamente per hotel. Inviare un HotelCode diverso non restituisce i dati di un altro hotel: è sempre la chiave a determinare l’hotel.
Protezione della chiave#
- Conserva la chiave nella configurazione del server hotspot o in una variabile d’ambiente; non inserirla mai nell’HTML del captive portal o nel JavaScript lato client.
- Il componente che recupera l’elenco deve essere eseguito lato server. I dispositivi degli ospiti non devono chiamare HMS direttamente: la risposta contiene i dati identificativi di tutti gli ospiti.
- Se sospetti che la chiave sia stata divulgata, eliminala nel pannello e generane una nuova. La vecchia chiave restituisce
401non appena viene eliminata.