Подтвердить что ты не робот

Скрытие моей конфиденциальной информации (например, пароля) из 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 с [моим проходом], просто сидев там. Существует ли здесь стандартная практика?

4b9b3361

Ответ 1

Стандарт заключается в том, чтобы поместить ваши настройки в один файл YAML, который не включен в ваше репо.

Затем вы просто получаете данные из него.

Проверить Railscast " # 85 Файл конфигурации YAML", чтобы увидеть его в действии.

Ответ 2

apneadiving верна, добавив к своему решению, другие люди, загружающие ваш код, могут не быстро определить, как сгенерировать этот yml, поэтому вам нужно дать им подсказку, имея следующую структуру:

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

Наличие файла "mail_settings.yml" содержит вашу конфиденциальную информацию и НЕ включается в репо и содержит "main_settings.yml.example", включенный в ваше репо, и имеет ту же структуру, что и "mail_settings.yml".

И чтобы быть более полезным, укажите раздел в файле README, описывающий, что людям необходимо скопировать файл mail_settings.yml.example в файл mail_settings.yml и улучшить его содержимое.

Ответ 3

Создайте файл конфигурации, содержащий настройки почты, и загрузите их из файла. Проверьте конфигурационный файл со всеми стираемыми настройками. Попросите приложение проверить, заполнен ли файл, а если нет, отобразить ошибку и выйти изящно (или отключить рассылку, просто убедитесь, что пользователь знает, что происходит).

Это имеет дополнительное преимущество, что пользователи могут легко изменять настройки почты без необходимости редактировать код. Говорить пользователю, чтобы отредактировать код для установки конфигурации, в общем, является плохая идея. Кроме того, вы можете сохранить конфигурацию в отдельном месте от кода, чтобы было легче добраться.