从github隐藏我的敏感信息(例如密码)

我刚刚设置了Devise(rails认证插件),在注册时发送确认电子邮件。 这涉及到我将以下内容放入我的environment.rb文件中:

ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :tls => true, :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :authentication => :login, :user_name => "[my email]", :password => "[my pass]" } 

我显然不想把它推到github,只有坐在那里[我的通行证]。 这里有标准做法吗?

标准是将您的配置设置放在一个未包含在您的仓库中的YAML文件中。

然后你只需从中获取数据。

检查Railscast“ #85 YAML配置文件 ”以查看它的运行情况。

apneadiving是正确的,添加到他的解决方案,其他人下载你的代码,可能不会很快弄清楚如何生成这个yml,所以你需要通过具有以下结构给他们一个提示:

 config | |--- environment.rb |--- mail_settings.yml |--- main_settings.yml.example 

文件’mail_settings.yml’包含您的敏感信息而不包含在repo中,并且您的repo中包含’main_settings.yml.example’,并且具有与’mail_settings.yml’相同的结构。

为了更有帮助,请在README文件中提供一个部分,描述人们需要将mail_settings.yml.example文件复制到mail_settings.yml并增强其内容。

创建包含邮件设置的配置文件,并从文件中加载它们。 检查配置文件,删除所有设置。 让您的应用程序检查文件是否已填写,如果不是,则显示错误并正常退出(或禁用邮件,只需确保用户知道发生了什么)。

这具有额外的优点,即用户可以轻松地更改邮件设置,而无需编辑代码。 一般来说,告诉用户编辑代码以设置配置是个坏主意。 此外,您可以将配置保留在与代码不同的位置,以便更容易访问。