在哪里配置开发API密钥rails 4

时间:2015-01-26 20:27:36

标签: ruby-on-rails-4 configuration configuration-files stripe-connect

我无法确定在rails应用中为开发环境放置API密钥的位置。我已经阅读了很多不同的方法,但到目前为止这就是我所拥有的(Stripe是API):

配置/初始化/ stripe.rb:

Rails.configuration.stripe = {
  :publishable_key => ENV['PUBLISHABLE_KEY'],
  :secret_key      => ENV['SECRET_KEY']
  :client_id => ENV['CLIENT_ID']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

我正在使用Heroku进行制作,因此我知道如何配置生产密钥。我弄清楚的是在哪里存储开发密钥,以便我可以在我的本地主机上进行测试。他们应该进入config / secrets.yml文件吗?或者也许是config / environments / development.rb文件?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我最终解决此问题的方法是将所有配置放在config / secrets.yml文件夹中,并让git忽略此文件,以便生产密钥不存储在任何存储库中。

看起来像这样:

development:
  secret_key_base: < secret key base >
  stripe_publishable_key: < publishable key >
  stripe_secret_key: < stripe secret key >
  stripe_client_id: < stripe client id >

test:
  secret_key_base: < secret key base >

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  stripe_publishable_key: < publishable key >
  stripe_secret_key: < stripe secret key >
  stripe_client_id: < stripe client id >

然后我将config / initializers / stripe.rb更改为:

Stripe.api_key = Rails.application.secrets.stripe_secret_key

我不确定这是否是解决我遇到的问题的最佳方法,但它有效。