【发布时间】:2020-04-23 15:34:24
【问题描述】:
所以我在 GitHub 存储库中创建了一个网站,我试图在该网站上通过 OAuth2 实现 Discord 登录。为了使所有这些工作,我需要为客户端 ID 和机密设置一个环境变量。如何在 GitHub 存储库中设置环境变量?
【问题讨论】:
标签: github oauth-2.0 environment-variables repository discord.js
所以我在 GitHub 存储库中创建了一个网站,我试图在该网站上通过 OAuth2 实现 Discord 登录。为了使所有这些工作,我需要为客户端 ID 和机密设置一个环境变量。如何在 GitHub 存储库中设置环境变量?
【问题讨论】:
标签: github oauth-2.0 environment-variables repository discord.js
如果您不想在 Github 存储库中公开机密,可以使用 dotenv 在本地管理它们。您将机密存储在项目根目录下的 .env 文件中。请务必记住将 .env 包含在您的 .gitignore 文件中,这样它就不会被发送到版本控制。
【讨论】:
在 GitHub 存储库中为每个环境存储不同的客户端 ID 和机密是非常好的(假设存储库是私有的)。但是,理想情况下,您会将每个环境的客户端 ID 和机密存储在 数据库表 中。然后在您的应用程序本身中,您只需引用所述表(使用每个环境的连接字符串)来检索与该特定环境有关的 ID/秘密。
【讨论】:
如何在 github repo 中设置环境变量
环境变量只与实际运行机器人(或网站)的机器相关。
如今,大多数托管公司都为您提供了一种编辑环境变量的方法。如果您使用 github 作为虚拟主机,请查看this github article。
假设您有一个字符串需要在变量token 中。对于您的本地开发,您创建一个简单地设置该变量的文件。确保将其从git 中排除在您的.gitignore 中!
在您的代码中,您只使用该文件 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
【讨论】: