当我在 github 上上传代码时,如何隐藏我的不和谐机器人令牌?

inn*_*nis 3 git

我正在编写这个 discordbot 并希望它在 github 上。如何在不公开其令牌的情况下上传它?

const Discord = require('discord.js');
const client = new Discord.Client();
// Following is the part that matter, the code before is just to get some context 
const token = '[hidden for security reasons]'; 
Run Code Online (Sandbox Code Playgroud)

我想我应该把它放在一个单独的文件中,但我不知道如何在我的 index.js 文件中引用它。

我该如何解决问题?

Tur*_*ght 5

有很多方法可以从代码中获取秘密信息。

最简单的可能是使用环境变量。例如,您可以在代码中使用它:

const token = process.env.DISCORD_TOKEN;
Run Code Online (Sandbox Code Playgroud)

然后在调用脚本之前设置 env 变量(假设是 bash shell):

const token = process.env.DISCORD_TOKEN;
Run Code Online (Sandbox Code Playgroud)

为了简化这一点,您可以使用如下包dotenv

require('dotenv').config();

const token = process.env.DISCORD_TOKEN;
Run Code Online (Sandbox Code Playgroud)

然后你可以.env在你的项目根目录中创建一个文件
.env::

DISCORD_TOKEN=1234foobar1234
Run Code Online (Sandbox Code Playgroud)

(记得添加这个文件.gitignore以避免意外提交)