Как скрыть пароль Gmail, используемый nodemailer для отправки в общедоступный репозиторий github?

Мне нужно скрыть имя пользователя и пароль, используемые nodemailer, чтобы иметь возможность нажать на общедоступный репозиторий.

На данный момент я вынужден загружать github без файла, содержащего эту информацию; это контактный файл, создающий объект "перевозчик", который сам содержит эту приватную информацию...

Затем мое приложение на сервере, подключенное к репозиторию github для непрерывного развертывания, приводит к сбою развертывания, потому что этот файл отсутствует...

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

Таким образом, непрерывное развертывание становится бесполезным!

Кроме того, в результате я не могу версионировать этот файл!


person Philippe Beck    schedule 10.01.2017    source источник


Ответы (2)


Либо используйте файл конфигурации, добавьте его в свой .gitignore, а затем один раз добавьте файл на сервер вручную, либо используйте переменные среды/аргументы командной строки.

Вы можете получить доступ к переменным среды, используя node.js в формате:

process.env.ENV_VARIABLE

or

process.argv

представляет собой массив аргументов командной строки в node.js

person Adam    schedule 10.01.2017
comment
Я забыл сказать, что использую Express (поэтому я добавляю тег express), и я пытался интегрировать файл конфигурации, но ничего не работает; Итак, я загрузил модуль dotenv и тот же результат: может быть, я загружаю его не в том порядке или с правильным синтаксисом? Но я также читал, что dotenv нельзя использовать для производства, поэтому я не знаю, что делать... - person Philippe Beck; 11.01.2017
comment
Это отлично сработало для меня! Спасибо! Теперь мне просто нужно вернуться и удалить информацию из моей истории git. - person Gage Hendy Ya Boy; 21.09.2018

Обратитесь в службу хостинга, чтобы узнать, как обойти пароль. Например, в AWS вы регистрируете безопасный адрес электронной почты (я использовал адрес gmail), а затем используете ключ безопасности, который вы добавляете в файл сервера следующим образом:

//Sends mail with submission forms
const transporter = nodemailer.createTransport(sesTransport({
    accessKeyId: "",
    secretAccessKey: "",
    rateLimit: 5
  }));

app.get('/send-mail',function(req,res){
  const mailOptions = {
   to : req.query.to,
   from: req.query.to,
   subject : "New email subject",
   text : "New email text"
  }

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

person elmeltone    schedule 03.02.2017