在Git托管的Ruby项目上保护API密钥

时间:2015-04-11 16:18:45

标签: ruby github

我不确定从哪里开始。我正在创建一个与字典API接口的Ruby项目,并使用API​​密钥。我不希望任何人和他的叔叔能够看到这个密钥,但该项目必须在GitHub上托管。我怎样才能这样做,并从Ruby程序中访问密钥?

澄清:这是一个类,我们必须使用GitHub

2 个答案:

答案 0 :(得分:3)

通常,你会把这些东西放在这样的文件中:

DICTIONARY_API=key_goes_here

并签入仅包含空格的文件版本(名为.example.sample或其他内容):

DICTIONARY_API=

或者您可以使用ENV从环境中读取密钥。如果你在Heroku上主持,建议这样做。另请参阅Dotenv gem和ENVied gem。

我已经看到两种方法结合起来(特别是在使用Dotenv时),为本地/非heroku使用.env文件,并在Heroku上使用Heroku的配置设置。

答案 1 :(得分:0)

使用费加罗宝石。 Documentation

基本上,您将使用名为application.yml的文件并存储环境变量。仔细检查application.yml是否列在.gitignore文件中,这样任何人都无法在github上查看它。

您可以设置:

# application.yml
API_KEY: my_api_key_here

然后您可以将其设置为应用中的另一个变量:

# anywhere in your app
api_key = ENV['API_KEY']

对于制作,您可以使用Figaro的命令将您的env变量与Heroku同步。