我正在为应用程序使用Twilio,在生产中,我使用heroku的CLI设置了auth令牌。我正在使用sms-spec
(https://github.com/monfresh/sms-spec)在本地测试我的应用程序的Twilio集成。我想ENV['TWILIO_AUTH_TOKEN']
在测试环境中设置为我的令牌。
每当我进行更改时,我都会使用Guard来自动运行测试,因此我不想每次运行测试时都必须手动设置ENV变量。出于安全原因,我也不想将令牌放入源代码中。
有什么方法可以为本地测试环境设置ENV变量,使其永久存在而不在我的源代码中?我已经花了几个小时研究这个问题,但似乎找不到关于如何执行此操作的很好的解释。任何帮助深表感谢 :)
两种方法:
Dotenv
(链接)的宝石。这是我在大多数开发应用程序中使用的方法。只需将gem包含在gemfile中,捆绑安装,然后将任何环境变量设置存储在名为的顶级文件中.env
。重启您的Rails服务器,ENV将被自动加载。非常易于使用和方便。如果您在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
以使您的秘密不会进入您的代码存储库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句