Javascript文件如何不显示API key

标签 javascript youtube api-key

我正在尝试创建 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/

相关文章:

ios - 如何使用 MPMoviePlayer 播放 YouTube 视频?

flash - 有关如何创建和显示youtube批注的技术说明?

javascript - 从 JavaScript 将日期传递给 ADODB.Command 参数

javascript - 如何在 JavaScript 中计算 r 平方值

javascript - 使用 React,如何将单击事件附加到类或 ID?

javascript - d3 : UI lags when mouse events attached to 1000 nodes

actionscript-3 - 如果在自己的域上播放,如何播放YouTube视频

firebase - 无法在我的 flutter 项目注册身份验证的 firebase 控制台中找到我的 Api key

security - 安全存储 API key : environment versus JSON

android - 如何改进在 Android 源代码中使用 HMS API key