Je souhaite effectuer des appels vers l’API JSON à différents moments. Parfois, je dois fournir une clé API — je la génère donc sur le tableau de bord d’administration et je dois l’inclure dans l’appel API. Par exemple :
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);
}
})
Existe-t-il un moyen de protéger cette clé afin qu’elle ne soit pas visible par les utilisateurs ?
Pour l’instant, ma solution consiste à exécuter cette fonction en dehors de mon application Discourse — mon application appellerait donc un point de terminaison hébergé ailleurs, qui exécuterait ensuite cette fonction. Ainsi, la clé API se trouve dans une fonction stockée séparément de mon application Discourse, et mon application ne connaît que le point de terminaison.
MAIS, ce serait plus élégant si je pouvais inclure cette fonction directement dans mon application Discourse, par exemple dans un thème ou un plugin. Cependant, il me semble que, quoi que je fasse, si elle fait partie du code, un utilisateur pourra voir la clé API.
Existe-t-il un moyen de masquer la clé API ?