【问题标题】:How to hide API key and still run heroku app?如何隐藏 API 密钥并仍然运行 heroku 应用程序?
【发布时间】:2020-08-01 11:57:10
【问题描述】:

我正在尝试了解如何隐藏 API 密钥并仍然在浏览器中运行我的 Heroku 项目。我了解如何在.env 文件中添加环境变量,然后将.env 文件添加到.gitignore 文件中,该文件成功地从GitHub 隐藏了包含密钥的文件。但是,当我尝试从远程仓库推送最新提交以使用 Heroku 获取项目的最新版本时,托管项目无法工作,因为它看不到需要使用的密钥。

一旦我弄清楚如何让托管的 Heroku 项目与隐藏密钥的最新 GitHub 提交一起工作,我想弄清楚如何将密钥配置为仅适用于我的项目的域而不适用于任何其他域地址,因为我知道如果没有使用后端服务器隐藏它,仍然可以在源代码中找到密钥。我还没有开始学习后端,所以我想学习如何使密钥仅适用于我的域。感谢您的任何回复。

【问题讨论】:

标签: reactjs api api-key


【解决方案1】:

您可以在 heroku 仪表板的设置部分将 API 密钥设置为配置变量,方法是转到您的 heroku 应用,点击设置,然后向下滚动配置变量。

或者,您可以通过 heroku cli 和 heroku config:set 执行此操作。查看这两个选项的heroku docs here

更新:要访问配置变量,您可以使用与其他环境变量相同的语法。

例如,如果您设置了一个名为 API_KEY 的配置变量,其值为 ABCDEFG,那么您在代码中访问它的方式(使用 react):

var myKey = process.env.API_KEY;

【讨论】:

  • 感谢您的意见。有机会我会试试的。
  • 没问题。更新了答案以显示如何在反应中访问 env var ^
  • 嘿,所以我刚开始尝试。我在 heroku 仪表板中添加了 env var,当我使用 process.env.API_KEY 并提交新代码时,密钥不起作用。后来我还尝试制作一个 .env 文件并输入 API_KEY="the_key" 然后使用 process.env.API_KEY 在 localhost 中调用该变量,但它仍然返回未定义。
猜你喜欢
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 2019-12-11
  • 2016-11-27
  • 1970-01-01
  • 2022-07-06
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多