ruby-on-rails 向github隐藏我的敏感信息(例如密码)

zbwhf8kr  于 2022-11-19  发布在  Ruby
关注(0)|答案(4)|浏览(273)

我刚刚设置了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,因为我的传球只是坐在那里。这里有标准的做法吗?

uinbv5nw

uinbv5nw1#

标准是将您的配置设置放在一个YAML文件中,而该文件不包含在您的存储库中。
然后您只需从中获取数据。
检查Railscast“#85 YAML Configuration File“以查看它的运行情况。

iovurdzv

iovurdzv2#

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

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

文件'mail_settings.yml'包含您的敏感信息,不包括在存储库中,并有'main_settings.yml.example'包括在您的存储库中,并具有相同的结构作为'mail_settings. yml'。
为了更有帮助,请在自述文件中提供一个部分,说明人们需要将mail_settings.yml.example文件复制到mail_settings.yml并增强其内容。

htrmnn0y

htrmnn0y3#

创建一个包含邮件设置的配置文件,并从一个文件中加载这些设置。签入配置文件并删除所有设置。让应用程序检查文件是否已填充,如果没有,则显示错误并正常退出(或者禁用邮件,但要确保用户知道发生了什么)。
这样做的另一个好处是,用户可以轻松地更改邮件设置,而不必编辑代码。一般来说,告诉用户编辑代码来设置配置是一个坏主意。此外,您可以将配置与代码放在不同的位置,这样更容易访问。

fdx2calv

fdx2calv4#

在Rails 5.2以上版本中,使用Rails凭据。请参见tutorial here

相关问题