【发布时间】:2021-07-05 09:38:03
【问题描述】:
我已将我的 GitHub 链接到 Heroku 项目,并且我想使用 nodemailer。在某些时候我想让这个存储库公开,所以显然我不想提交包含敏感信息(电子邮件和通行证)的文件。有没有办法存储这些数据并将其包含在任何 .js 文件中而不出现在我的 GitHub 中?
【问题讨论】:
-
环境变量是你的朋友
标签: node.js github heroku nodemailer
我已将我的 GitHub 链接到 Heroku 项目,并且我想使用 nodemailer。在某些时候我想让这个存储库公开,所以显然我不想提交包含敏感信息(电子邮件和通行证)的文件。有没有办法存储这些数据并将其包含在任何 .js 文件中而不出现在我的 GitHub 中?
【问题讨论】:
标签: node.js github heroku nodemailer
在每个应用程序中,您都将配置设置“外部化”,尤其是敏感属性(密码、令牌等)。
在 Heroku 中,建议的方法是使用 ConfigVars:为每个设置定义一个环境变量,不要在代码中硬编码/提交这些变量。
您可以使用 Heroku CLI(参见下面的示例)或直接在 Heroku Web 仪表板中设置 ConfigVar。
heroku config:set PASSWORD="xyz"
【讨论】:
您可以在 Heroku 网站上以及通过 CLI 设置所有环境变量。当您在 Heroku 上的项目中时,只需单击 Settings>Reveal Config Vars。在此处输入您的 .env 键/值。 (我假设你在谈论你的 .env 变量)。这是他们的文档:https://devcenter.heroku.com/articles/config-vars
如果您不熟悉存储环境变量以使变量保密,这就是在本地完成的方式。你会在你的 .gitignore 中包含 .env 文件,或者在你工作的任何环境中包含它,因此当你将它上传到 Heroku 或任何其他托管站点时它不会被包含在内。这是一个非常重要的步骤,所以如果你不熟悉,这里有一个 repo:https://github.com/motdotla/dotenv#readme
Dotenv(.env) 不是包罗万象的,但它是我通常使用的。
【讨论】: