Authenticatie & CORS instellen
Voordat een narrow-casting-scherm live data toont, moet je een API-gebruiker aanmaken en CORS toestaan in het admin panel.
1. Hoe de koppeling werkt
Elk voorbeeld haalt data op via een GET-verzoek naar de REST API:
GET https://JOUWOMGEVING.i-reserve.net/api/rest/booking/filter?columns=…&search=…Authorization: Basic <base64(gebruiker:wachtwoord)>
booking/filter— reserveringen (dagrooster, kamerbordjes, slideshow).event/filter— publieke events met beschikbaarheid (events-grid).
2. API-gebruiker aanmaken (alleen-lezen)
Let op: de inloggegevens staan leesbaar in de HTML (de browser stuurt ze mee). Gebruik daarom nooit een beheerdersaccount, maar een aparte gebruiker met alleen leesrechten op precies de benodigde producten.
- Log in op het admin panel als beheerder.
- Maak onder Gebruikers / Medewerkers een nieuwe gebruiker aan, bijvoorbeeld
API_signage. - Geef alleen leesrechten op boekingen/events en beperk waar mogelijk tot de relevante producten.
- Kies een sterk, uniek wachtwoord. Dit vul je in
config.jsin.
3. Authenticatie in de pagina (Basic Auth)
Vul de gegevens in config.js in; de SDK bouwt hier automatisch de Authorization-header van (Basic base64(gebruiker:wachtwoord)). Heeft een endpoint geen authenticatie nodig (publiek), zet dan auth: null.
4. CORS toestaan in het admin panel
De browser blokkeert standaard verzoeken naar een ander domein dan waar de pagina vandaan komt. Een narrow-casting-pagina draait meestal als file:// of op een lokaal kastje — een andere origin dan https://JOUWOMGEVING.i-reserve.net. Voeg daarom de juiste origin toe aan de CORS-whitelist:
- Los bestand (
file://): originnull. - Lokale webserver:
http://localhostof het IP-adres. - Gehost op een (sub)domein:
https://signage.jouwdomein.nl.
In het admin panel onder Instellingen > API / Koppelingen (de naam kan per versie verschillen) staat de lijst met toegestane origins. Vermijd * in productie; whitelist alleen wat je echt gebruikt.
5. Het filter (search)
Het search-veld gebruikt relatieve datums: "0d" = vandaag, "7d" = over 7 dagen, "-1d" = gisteren. Voorbeeld: startdatum >= "0d" AND startdatum <= "0d" AND product IN (101,102,103).
6. Testen
Test eerst buiten de browser met curl (geen CORS-restrictie, puur de auth/filter-check):
curl -u "API_signage:WACHTWOORD" "https://JOUWOMGEVING.i-reserve.net/api/rest/booking/filter?columns=RES_CUSTOM02,RES_FROMTIME&search=startdatum%20%3E%3D%20%220d%22"
- JSON terug → auth en filter kloppen.
- 401 Unauthorized → gebruiker/wachtwoord of rechten onjuist.
- Leeg in de browser maar wél data via curl → vrijwel zeker CORS.
Beveiligingschecklist
- Aparte API-gebruiker, alleen-lezen, beperkt tot de juiste producten.
- Sterk, uniek wachtwoord; periodiek wijzigen.
- Alleen de benodigde origins in de CORS-whitelist (geen
*). - Geen beheeraccount in
config.js.





