我在开发环境中工作。
我在/config/initializers 下有一个 stripe.rb 文件,它的内容是:
Rails.configuration.stripe = {
:publishable_key => ENV['PUBLISHABLE_KEY'],
:secret_key => ENV['SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
我试图将它们放在那里(在 ENV['key-here'] 中),但 Stripe 无法识别它们并返回错误。
为了使它工作,我在像这样启动我的 rails 服务器之前传递它们:
PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXX SECRET_KEY=sk_test_XXXXXXXXXXXX rails s
我应该将这些值放在我的 Rails 应用程序中的什么位置?(因为我很快就会在生产中部署)
谢谢
我应该将这些值放在我的 Rails 应用程序中的什么位置?
你没有。
您不希望这些内容出现在您的源代码中,因为任何有权访问您源代码的人都可以访问您的 Stripe 账户(并开始让您的客户付费......
它们应位于服务器上的环境变量中。如果这看起来不方便您,您可以查看费加罗,它可以帮助您了解敏感信息。
请注意,如果您的 yml 文件不是由您编写的(例如,如果注入了一些内容),它有一些安全风险(有人可能会在那里注入恶意代码)。您可以使用safe_yml来防止此类风险。
最后,如果你在 Heroku 上部署,你可以在那里配置变量,这些变量将可用于你的应用程序。