我需要在多个地方调用 JSON API。有时,我需要提供 API 密钥——因此我会在管理仪表板上生成一个,并将其包含在 API 调用中。例如:
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);
}
})
有没有办法保护这个密钥,使其对用户不可见?
目前,我的解决方案是让此函数在 Discourse 应用之外执行——即我的应用会调用另一个端点,该端点再调用此函数。这样,API 密钥就存储在一个与 Discourse 应用分离的函数中,而我的应用只知道该端点。
但是,如果我能将这个函数直接包含在 Discourse 应用中(例如在主题或插件中),会更简洁。但在我看来,无论怎么做,只要它是代码的一部分,用户就能看到 API 密钥。
有没有办法隐藏 API 密钥?