1

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

我正在尝试在我的简单应用程序中使用用户订阅表单。

我基本上是按照这个指南来让它工作的

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

我的代码正在运行,我可以使用表单进行注册,但是,我不断收到来自 mailchimp 的电子邮件,告诉我我的 Keep 已被盗用。有时我在尝试发送一些测试订阅后收到这封电子邮件,有时我只是在我再次更改我的 api 密钥后才收到它。

我想与您联系,让您知道我们必须在您的 MailChimp 帐户中禁用帐户名称为 MYACCOUNTNAME 的活动 API 密钥。

我们能够找到您公开发布的 API 密钥,这使某人可以完全访问您的帐户。由于它已被禁用,我们不建议重新启用它。相反,您需要在您的帐户中生成一个新的 API 密钥。

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

4

2 回答 2

1

您可能在github上托管您的代码,并且由于存储库是公开的,即使是谷歌机器人也可以对其进行索引。诈骗者也可以使用您的凭据。

不过,在 github 上没有什么不好的托管存储库。只需使用环境变量而不是将凭据存储在代码中。

配置/初始化程序/gibbon.rb:

Gibbon::API.api_key = ENV[:api_key]

在heroku上设置环境变量:

heroku config:set api_key=<your key>
于 2014-09-12T17:56:12.740 回答
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。

希望这对其他人有帮助!

于 2014-09-12T19:52:02.943 回答