我是RoR的菜鸟,如果这是一个愚蠢的问题,请原谅我。
我正在尝试在我的简单应用中添加用户订阅表单。
我基本上遵循本指南来实现它
我的代码正在运行,我可以使用该表单注册,但是,我一直收到来自mailchimp的电子邮件,告诉我我的保留已被泄露。有时我尝试发送一些测试订阅后收到此电子邮件,其他我再次更改api密钥后得到它。
我想联系您,告诉您我们必须在您的MailChimp帐户中停用活动的API密钥,帐号为MYACCOUNTNAME。
我们能够找到您公开发布的API密钥,从而为用户提供对您帐户的完全访问权限。由于它已被禁用,我们不建议重新启用它。相反,您需要在帐户中生成新的API密钥。
我想以某种方式加密我的密钥或其他东西?顺便说一句,我的应用程序在Heroku上。那么如何阻止我的密钥被禁用?
答案 0 :(得分:1)
您可能在 github 上托管您的代码,并且由于存储库是公开的,因此即使是Google漫游器也可以为其编制索引。诈骗者也可以使用您的凭证。
但是在github上没有什么不好的托管存储库。只需使用environment variables而不是将凭据存储在代码中。
配置/初始化/ gibbon.rb:
Gibbon::API.api_key = ENV[:api_key]
在heroku上设置环境变量:
heroku config:set api_key=<your key>
答案 1 :(得分:0)
好的,我已经弄明白了。
对于生产环境(heroku),我遵循上面提供的罗马解决方案。
对于我的本地环境,我安装了Figaro Gem,它基本上将我的api密钥保密在config文件夹中的application.yml文件中。它很有效。
https://github.com/laserlemon/figaro
这是我的gibbon.rb启动器文件,任何人都想知道
if Rails.env.development?
Gibbon::API.api_key = ENV["MC_key"]
end
if Rails.env.production?
Gibbon::API.api_key = ENV[:api_key]
end
Gibbon::API.timeout = 15
Gibbon::API.throws_exceptions = false
其中MC_Key是我的application.yml中的变量,而:api_key是heroku中的ENV。
希望这有助于其他人!