Ich möchte an verschiedenen Stellen Aufrufe an die JSON-API tätigen. Manchmal muss ich einen API-Schlüssel bereitstellen – also generiere ich einen im Admin-Dashboard und muss ihn in den API-Aufruf einfügen. Zum Beispiel:
var token = [API KEY]
$.ajax({
url: 'https://myforum.com/groups/[groupname].json',
contentType: "application/json",
headers: {
"Api-Key": token,
"Api-Username": "[username]"
},
dataType: 'json',
success: function(result){
console.log('result = ' + result);
}
})
Gibt es eine Möglichkeit, diesen Schlüssel so zu schützen, dass er für Benutzer nicht sichtbar ist?
Derzeit besteht meine Lösung darin, diese Funktion außerhalb meiner Discourse-Anwendung auszuführen – meine Anwendung ruft also einen Endpunkt auf, der woanders gehostet wird und diese Funktion dann aufruft. Auf diese Weise befindet sich der API-Schlüssel in einer Funktion, die separat von meiner Discourse-Anwendung gespeichert ist, und meine Anwendung kennt nur den Endpunkt.
ABER, es wäre sauberer, wenn ich diese Funktion innerhalb meiner Discourse-Anwendung einbinden könnte, zum Beispiel in einem Theme oder Plugin. Doch es scheint mir, dass ein Benutzer den API-Schlüssel sehen kann, egal was ich tue, solange er Teil des Codes ist.
Gibt es eine Möglichkeit, den API-Schlüssel zu verstecken?