当我尝试在我的rails应用程序中使用注册表单时,Mailchimp会禁用我的API密钥

时间:2014-09-12 17:43:13

标签: ruby-on-rails mailchimp api-key gibbon

我是RoR的菜鸟,如果这是一个愚蠢的问题,请原谅我。

我正在尝试在我的简单应用中添加用户订阅表单。

我基本上遵循本指南来实现它

http://cheshireoctopus.github.io/blog/2014/01/23/mailchimp-plus-gibbon-plus-rails-create-a-basic-sign-up-form/

我的代码正在运行,我可以使用该表单注册,但是,我一直收到来自mailchimp的电子邮件,告诉我我的保留已被泄露。有时我尝试发送一些测试订阅后收到此电子邮件,其他我再次更改api密钥后得到它。

  

我想联系您,告诉您我们必须在您的MailChimp帐户中停用活动的API密钥,帐号为MYACCOUNTNAME。

     

我们能够找到您公开发布的API密钥,从而为用户提供对您帐户的完全访问权限。由于它已被禁用,我们不建议重新启用它。相反,您需要在帐户中生成新的API密钥。

我想以某种方式加密我的密钥或其他东西?顺便说一句,我的应用程序在Heroku上。那么如何阻止我的密钥被禁用?

2 个答案:

答案 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。

希望这有助于其他人!