我目前正在使用GitHub页面托管我的网站,我正在制作一个需要API调用的简单web应用程序。API调用是一个带有某些参数的web url,其中一个强制性参数是从服务发出的个人API密钥,他们严格警告不要与他人共享,这相当于共享您的密码。此服务没有公共API密钥,只有帐户绑定的密钥。
在我的JavaScript文件中,我有一行内容如下:
var api= "https://osu.ppy.sh/api/get_beatmaps?k=[MY API KEY HERE]"
然后在getJSON调用中使用此字符串。
在?k=
之后是我的帐户绑定API,我不想分享它,因为它相当于给出我的密码。我意识到任何用户都可以访问myname.github.io/js/script.js
,他们可以查看JavaScript,从而查看我的API密钥。有没有一种方法可以使这个文件无法访问,或者有没有一个方法可以使它使任何人都看不到我的API密钥。
除非你能隔离它,就像在你控制并可以锁定的服务器上运行代码一样,否则答案是否定的。
您也可以像在AmazonLambda函数或等效函数中那样"无服务器"地执行此操作。
记住,客户端代码在客户端运行,所以如果他们有权访问您的密钥,他们就有权访问你的密钥。唯一的解决方法是对请求进行中间处理或代理。