Serverseitige Skripte#
Wenn Anwendungen über Web APIs aufgerufen werden sollen, ist häufig eine Authentifizierung erforderlich. Eine mögliche Authentifizierungsmethode sind API-Keys, die geheim sein müssen, um Missbrauch zu verhindern. Mittels Server Side Scripting kann eine API serverseitig statt clientseitig aufgerufen werden. Damit die API-Keys auch vor fremden Dashboard-Administratoren geschützt sind, kann dieser Code verschlüsselt werden.
Konfigurieren Sie ein Inhaltselement vom Typ HTML/JS.
Hier erhalten Sie ein Beispiel-Skript für Openweather-Map:
Aktuelle Temperatur in {Contact.CITY1}: <span id="output_temp">-</span>°C <script type="server"> function getTemp(city) { var xhr = new XMLHttpRequest(); var API_KEY = '8de2235076f3ef9cf9bbedf148504945' var url = `http://api.openweathermap.org/data/2.5/weather/?q=${encodeURIComponent(city)}&units=metric&appid=${API_KEY}` xhr.open('GET', url, false); xhr.send(); if (xhr.status == 200) return JSON.parse(xhr.responseText).main.temp; throw new Error('Request failed: ' + xhr.status); } </script> <script> XP.OnLoad(function() { XP.Server.getTemp('{Contact.CITY1}').then( result => { console.log(result) $('#output_temp').text(result) }) }) </script>
Verschlüsselung#
Das o.g. serverseitige Openweather-Map Element soll verschlüsselt werden. Dafür wird in das Tag <script type="server"> um encrypted="" erweitert:
Aktuelle Temperatur in {Contact.CITY1}:
<span id="output_temp">-</span>°C
<script type="server" encrypted="">
/* ENCRYPTED SECTION
bZcRTa++L4RnNNfDSn1348GCruCkGATJfYoldmTE/mXn1Hqfoj1CRfZsyu/AwpiB7+iGjd8FAvJhLY5gWLgOU1dDrYOIaADmG/T5frxUPqca5KLRr1wk8kgrsoLcbRXgbmFnwjUd2xXTNGnncbNmoMU3FRRPIR2xNIlBqGVduaf803USjYWVqY7ttWWUBl5NNIVAQKb2HzkN0uphy+zaWMRtzPea4SYr5P3NUcgtCa3EpnOzlFsnwnrzydKzMG2LVl7XP0KFv80RKstaUccsrIJSHGsw/+F/ZKbVuKVt3u6lvx4dtQpU2PZb+wx447rMiv6lx91eer8C+cqhciH5KbUT1H3JrsMUK8+5bGqfJ5fFaSuYGCNCdU+HfxcO9PDUD0ktJ4di3qyuhSRf64BfuWfXohhcFCh3mv91aeShb0ub504szcd3E1bxGgqyq2XnRhKYetJgcTg2mg0SYco3lPMUcFuPAM9fO9HS3GQ53huuMWY+BFEDmODPZctDeHOiaVUffSkn8pFpgw+2kKB21aNapJpkMvj1IDOovGFW0waIFQgPbogxKdUMcjQ+Z3YzmR614fUbbpyR3NgxrDJukPjnXC3wYdg+VxYHlSdzOSmilYKnGTuOwa5BDzZUzh9IHNIw/aVEKJ8gVJc+RRzXpjEhc+BRhpdyeE49cAEoku8=
ENCRYPTED SECTION END */
</script>
<script>
XP.OnLoad(function() {
XP.Server.getTemp('{Contact.CITY1}').then( result => {
console.log(result)
$('#output_temp').text(result)
})
})
</script>
Nach dem Speichern ist der komplette Tag nicht mehr durch andere Adminstratoren lesbar.
Vorsicht
Bitte speichern Sie Ihre Skipte nicht ausschließlich in diesem HTML/JS Element, da Sie sonst den Code nach dem verschlüsseln nicht mehr lesen können.