如何隐藏nodemailer用来推送公共github存储库的gmail密码?

时间:2017-01-10 15:10:04

标签: node.js express github passwords nodemailer

我需要隐藏nodemailer用来推送公共存储库的用户名和密码。

现在,我被迫在没有包含此信息的文件的情况下对github进行推送;这是一个联系人文件,它创建一个对象" transporter",它本身包含这个私人信息......

然后,我的服务器上的应用程序连接到其github仓库以进行持续部署,它会导致部署崩溃,因为此文件丢失了......

我必须重新做一次推送,但这次直接到服务器,所以用这个着名的联系人文件来恢复网站。

因此,持续部署变得毫无用处!

此外,因此,我无法对此文件进行版本化!

2 个答案:

答案 0 :(得分:1)

使用配置文件,将其添加到.gitignore,然后手动将文件添加到服务器一次,或者使用环境变量/命令行参数。

您可以使用node.js访问环境变量,格式为:

process.env.ENV_VARIABLE

process.argv

是node.js

中的命令行参数数组

答案 1 :(得分:0)

请与托管服务部门联系,了解使用密码的方法。例如,使用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不会发送到未注册的地址。