如何为 GitHub 个存储库设置环境变量?

How do I set an environment variable for GitHub repositorys?

所以我在 GitHub 存储库中创建了一个网站,我试图在该网站上通过 OAuth2 实现 Discord 登录。为了使所有这些工作正常,我需要为客户端 ID 和密码设置一个环境变量。如何在 GitHub 存储库中设置环境变量?

如果您不想在 Github 存储库中公开机密,您可以使用 dotenv 在本地管理它们。您将机密存储在项目根目录下的 .env 文件中。请务必记住将 .env 包含在您的 .gitignore 文件中,这样它就不会被发送到版本控制。

在 GitHub 存储库中为每个环境存储不同的客户端 ID 和机密是完全没问题的(假设该存储库是私有的)。但是,理想情况下,您会将每个环境的客户端 ID 和机密存储在 数据库 table 中。然后在您的应用程序本身中,您只需引用所说的 table(使用每个环境的连接字符串)来检索与该特定环境相关的 ID/秘密。

How do I set an env var in a github repo

环境变量仅与机器相关 运行 机器人(或网站)。

如今大多数托管公司都为您提供了一种编辑环境变量的方法。如果您使用 github 作为虚拟主机,可能会看到 this github article.

假设您有一个字符串需要在变量 token 中。对于您的本地开发,您创建一个文件来简单地设置该变量。确保通过将其包含在您的 .gitignore 中将其从 git 中排除!

并且在您的代码中,您仅使用该文件 IF 未设置环境变量。例如:

// load auth & other tokens
var token = null;
if (process.env.hasOwnProperty('TOKEN')) {
  token = process.env.TOKEN;
}
else {
  var auth = require('./discordauth.json');
  token = auth.token;
}

从那里你只需要学习如何在你的特定主机中设置环境变量。创建一个名为 TOKEN 的环境变量(以匹配代码示例中的 process.env.TOKEN)。示例:

文件内容 discordauth.json:

{
"token": "XXXXXXXXXXXXX",
}

环境变量的值 TOKEN

XXXXXXXXXXXXX