我正在尝试创建 Codeacademy Searching for YouTube Videos使用 GitHub 页面。
他们在 search.js 中有
function onYouTubeApiLoad() {
// This API key is intended for use only in this lesson.
gapi.client.setApiKey('_API_KEY_');
// Add code here to test out showResponse():
}
我的存储库是公开的。有什么方法可以隐藏我将使用的 API key 吗?
谢谢
最佳答案
存储敏感 key (例如 YouTube API key )的“正确”方法是将它们存储为服务器上的环境变量。
您可以读取环境变量并将其存储在全局变量或其他方便的位置,而不是将 key 作为字符串存储到 onYouTubeApiLoad()
,如下所示。
const youtubeSecret = process.env.YOUTUBE_SECRET;
function onYouTubeApiLoad() {
// This API key is intended for use only in this lesson.
gapi.client.setApiKey(youtubeSecret);
// Add code here to test out showResponse():
}
创建和存储环境变量是另一回事,并且取决于您正在使用的系统以及托管它的方式。在最简单的情况下,如果您在 Linux/MacOS/BSD 上本地运行此程序,则可以在运行该程序之前在终端中输入 export YOUTUBE_SECRET=(your Secret key)
,或者添加它直接进入您的 .bashrc 文件。 (更好的是,您可以从 .bashrc 中的文件中读取它。)如果您将程序托管在云中(例如 AWS、Heroku),则过程会有所不同。还有很多其他答案详细介绍了如何做到这一点。
执行此操作的另一个好方法是将您的 key 存储在自己的文件中,并将该文件添加到您的 .gitignore 中。然后您可以使用 Node.js fs
模块来读取它并将其存储为上面的 a 变量。
关于Javascript文件如何不显示API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382241/