如何向heroku添加API密钥和其他安全内容?

问题描述 投票:4回答:2

我在某处读过但似乎无法找到将秘密密钥添加到Heroku的位置,而无需将其放入源代码git存储库中?

我猜这有助于在我推入github时保持安全。

我该怎么做,这样做有意义吗?

github heroku
2个回答
2
投票

http://docs.heroku.com/config-vars

然后将开发密钥添加到初始化程序:

#config/initializers/keys.rb

development:
  SOME_KEY = 'abc123' #not your production key

testing:
  SOME_KEY = 'abc123' #not your production key

#production:
  #blank

(可选)将初始化程序添加到.gitignore。不需要,因为您的生产密钥未存储。


1
投票

正如马克所说,最好的方法是Heroku环境变量。你可以读到他们here

为此,您需要使用Heroku CLI,您需要根据您的操作系统下载并安装它。不要忘记使用以下3个步骤设置Heroku CLI:

$ heroku login $ cd ~/myapp $ heroku create (your Heroku app name)

现在是时候设置配置变量了。命令是:

$ heroku config:set <ENVIRONMENT_VARIABLE>=<VALUE>

例如,我将在这里将我的API密钥保存为config var:

$ heroku config:set DARKSKY_API_KEY=8e11111111162218d22222222229cc22222c6

现在是时候在服务器端代码中使用它了。对于Nodej,您可以通过以下方式访问它们:

process.env.DARKSKY_API_KEY

像这样:

  const weatherURL =`https://api.darksky.net/forecast/${process.env.DARKSKY_API_KEY}/${latitude},${longitude}?units=si`;

对于其他语言,如Ruby,Java,...检查这个link

您可以通过键入以下内容来查看配置变量:

$ heroku config

或删除配置var:

$ heroku config:unset DARKSKY_API_KEY

另外,我正在考虑heroku配置变量的.env文件,我们可以在本地编辑它们,然后在heroku上传它们。最后,我想出了这个解决方案。

要从heroku本地保存配置变量并能够在文件中本地更改它们,稍后在需要时,我们可以运行:

$ heroku config | sed 's/: */=/g; /^=/d' >> HEROKU_CONFIG_ENV.env

哪个HEROKU_CONFIG_ENV.env只是一个文件名,你可以命名你喜欢的任何名称。这个脚本将保存HEROKU_CONFIG_ENV.env文件在你的项目的根目录。

修改密钥后,是时候在Heroku上传它们并通过运行设置heroku配置变量:

$ heroku config:set $(cat HEROKU_CONFIG_ENV.env | sed '/^$/d; /#[[:print:]]*$/d') 

而已。

© www.soinside.com 2019 - 2024. All rights reserved.