我在开发环境中工作。
我在/ 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应用程序中? (因为我将很快在生产中部署)
由于
答案 0 :(得分:6)
我在哪里将这些值放在我的Rails应用程序中?
你没有。
您不希望这些内容出现在您的源代码中,因为任何有权访问您的源代码的人都可以访问您的Stripe帐户(并开始让您的客户付费...)。< / p>
它们应该在服务器上的环境变量中。如果这看起来不方便,您可以查看figaro,它可以帮助您处理敏感信息。
请注意,如果您的yml文件不是由您编写的(例如,如果注入了某些内容),则存在一定的安全风险(有人可能会在那里注入恶意代码)。您可以使用safe_yml来预防这类风险。
最后,如果您在Heroku上进行部署,您可以configure variables在那里使用您的应用程序。