2014-11-09 2 views
1

Для того, чтобы установить ActionMailer/изобрести подтверждение по электронной почте необходимо предоставить подробную информацию в режиме реального аккаунта Gmail:Скрыть Plain Text Password в development.rb

config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'example.com', 
    user_name:   '[email protected]', 
    password:    'gmailpassword', 
    authentication:  'plain', 
    enable_starttls_auto: true } 

Но если я совершаю этот файл на GitHub на публичный репозиторий он будет виден всему миру.

Одним из решений было бы создание частного репозитория, но я не думаю, что это лучший. Возможно, я хочу поделиться кодом с другими разработчиками, которых я не знаю, но я не хочу, чтобы они видели мой почтовый пароль.

Другим решением было бы добавить файл developent.rb в gitignore. Тем не менее, я думаю, что я хотел бы сохранить его в своем контроле версий, поскольку он изменяется с развитием проекта и очень важно запускать приложение.

Как настроить actionmailer без потенциального раскрытия моего пароля gmail другим разработчикам/людям через github?

---------------------- FIX ----------------------

Это дублированный вопрос. Я знал, как правильно искать информацию.

Существует большой ответ о том, как использовать переменные окружения здесь:

Rails : How to store mailer password safely?

ответ

2

Что вы обычно делаете является:

  • версия шаблона файла (с документацией, чтобы объяснить значение каждого поля)
  • версия скрипта, способного генерировать файл действия
  • объявить, что скрипт как content filter driver в .gitattribute (как in here)
  • магазин фактическое значение вне мерзавец репо (таким образом, они не могут быть переданы по ошибке)

smudge

(изображение с "Customizing Git Attributes" от Git Book)

Это приведет к созданию правильного файла с правильными значениями.

0

Вы можете зашифровать этот единственный файл. Таким образом, это будет отслеживаться в репо, но только вы могли бы его прочитать.

Существует инструмент под названием git-crypt, который делает это (отказ от ответственности: я не использовал его сам).