0

我将 Twilio 用于应用程序,在生产中我使用 heroku 的 CLI 设置身份验证令牌。我正在使用sms-spec( https://github.com/monfresh/sms-spec ) 在本地测试我的应用程序的 Twilio 集成。我想ENV['TWILIO_AUTH_TOKEN']在测试环境中设置我的令牌。

每当我进行更改时,我都会使用 guard 来自动运行我的测试,所以我不想在每次运行测试时都手动设置 ENV 变量。出于安全原因,我也不想将令牌放入我的源代码中。

有没有办法可以为我的本地测试环境设置 ENV 变量,使其永久存在而不是在我的源代码中?我花了几个小时研究这个,似乎无法找到一个很好的解释如何做到这一点。任何帮助深表感谢 :)

4

1 回答 1

1

两种方法:

  1. 使用像Dotenv链接)这样的宝石。这是我在大多数开发应用程序中使用的方法。只需将 gem 包含在您的 gemfile 中,捆绑安装,然后将任何环境变量设置存储在名为.env. 重新启动您的 Rails 服务器,ENV 将自动加载。非常容易使用和方便。
  2. 如果您在 ENV 部分很灵活,并且您正在运行 Rails 4.1+,则可以使用config/secrets/yml. 这在Rails 4.1 发行说明2.2 节中有很好的记录。因此,在您的情况下,您可以像这样设置它:

    开发:twilio_auth_token:verysecretstring

然后,在您的初始化程序中ENV['TWILIO_AUTH_TOKEN'],您将使用Rails.application.secrets.twilio_auth_token. 我自己没有尝试过,但它在我的列表中,因为我宁愿使用原生 Rails 功能而不是单独的 gem。

当然,任何包含您的秘密的文件都需要小心保护。至少,确保您包含在其中,.gitignore以免您的秘密进入您的代码存储库。

于 2015-07-02T23:59:30.623 回答