当前位置:  开发笔记 > 后端 > 正文

使用github,heroku和本地开发时如何保护我的私钥?

如何解决《使用github,heroku和本地开发时如何保护我的私钥?》经验,为你挑选了1个好方法。

目前,我把我用来访问environment.rb文件中的其他API等的密钥.这样,当我在本地运行时,以及在heroku上都可以使用它.

但是,我想开始通过github公开我的代码,这样我就可以得到一些帮助.

我需要做些什么来实现这一点,特别是我可以在本地测试并测试heroku.

似乎在heroku上有一种方法可以从命令行添加密钥,因此它们不需要驻留在ruby-on-rails应用程序中.但是对于本地发展呢?



1> Dan McNevin..:

您可以使用环境变量(heroku上的config vars)来存储API密钥,而不是将它们检入源代码.

对于我正在处理的项目,我使用了一个twitter-auth的分支,并将其更改为从env变量中读取客户端密钥和密钥:

http://github.com/dpmcnevin/twitter-auth/blob/ace5d60a8ed8121cca4c97ef30a0cd025b99bfe1/lib/twitter_auth.rb#L68

OAuth::Consumer.new(
  ENV['oauth_consumer_key'] || config['oauth_consumer_key'],          
  ENV['oauth_consumer_secret'] || config['oauth_consumer_secret'],
  options 
)

然后我.rvmrc在项目目录中设置我的密钥以供本地使用:

export oauth_consumer_key=xxxxxxxxxxxx
export oauth_consumer_secret=xxxxxxxxxxxxxxxxxxx
rvm ree@redactify

最后在heroku上设置环境变量:

$ heroku config:add oauth_consumer_key=xxxxxxxxxxxxx
$ heroku config:add oauth_consumer_secret=xxxxxxxxxxxxx
$ heroku config
DATABASE_URL          => postgres://.....
RACK_ENV              => production
oauth_consumer_key    => xxxxxxxxxxxxxxxx
oauth_consumer_secret => xxxxxxxxxxxxxxxxxxx

然后只需确保你.rvmrc.gitignore,然后你可以推送到github而不暴露任何API密钥.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有