1

我无法确定在我的 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 文件?

谢谢你的帮助。

4

1 回答 1

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

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

于 2015-01-27T17:40:20.143 回答