Vorrei effettuare chiamate all’API JSON in vari punti. A volte, devo fornire una chiave API: quindi ne genero una dalla dashboard di amministrazione e devo includerla nella chiamata API. Ad esempio:
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);
}
})
Esiste un modo per proteggere questa chiave in modo che non sia visibile agli utenti?
Al momento, la mia soluzione è far sì che questa funzione venga eseguita al di fuori della mia applicazione Discourse: quindi la mia applicazione chiamerebbe un endpoint ospitato altrove, che a sua volta eseguirebbe questa funzione. In questo modo, la chiave API si trova in una funzione memorizzata separatamente dalla mia applicazione Discourse, e la mia applicazione conosce solo l’endpoint.
MA, sarebbe più elegante se potessi includere questa funzione all’interno della mia applicazione Discourse, ad esempio in un tema o in un plugin. Ma sembra che, in ogni caso, se fa parte del codice, un utente possa visualizzare la chiave API.
Esiste un modo per nascondere la chiave API?