如何在Python代码中隐藏Discord Bot Token并安全推送到GitHub?
如何在Discord机器人Python项目中隐藏Token并安全公开代码
方法1:使用系统环境变量
直接将Token存储在系统环境变量中,代码通过读取环境变量获取Token,无需在代码中写入敏感信息:
- 本地设置:
- Windows:打开命令提示符执行
set DISCORD_BOT_TOKEN=你的机器人Token - Linux/macOS:打开终端执行
export DISCORD_BOT_TOKEN=你的机器人Token
- Windows:打开命令提示符执行
- 代码实现:
import os import discord from discord.ext import commands # 从环境变量读取Token bot_token = os.getenv('DISCORD_BOT_TOKEN') bot = commands.Bot(command_prefix='!', intents=discord.Intents.all()) @bot.event async def on_ready(): print(f"已登录为 {bot.user.name}") bot.run(bot_token) - 部署场景:在云平台的项目设置面板中,找到环境变量配置项,添加
DISCORD_BOT_TOKEN和对应值即可。
方法2:使用.env文件配合python-dotenv
通过专用的环境变量文件管理敏感信息,同时确保该文件不被推送到GitHub:
- 安装依赖库:
pip install python-dotenv - 创建
.env文件(与项目主脚本同目录),写入:DISCORD_BOT_TOKEN=你的机器人Token - 代码中加载并读取
.env文件:import os from dotenv import load_dotenv import discord from discord.ext import commands # 加载.env文件中的变量 load_dotenv() bot_token = os.getenv('DISCORD_BOT_TOKEN') bot = commands.Bot(command_prefix='!', intents=discord.Intents.all()) @bot.event async def on_ready(): print(f"已登录为 {bot.user.name}") bot.run(bot_token) - 关键操作:在项目根目录创建
.gitignore文件,添加一行.env,确保该文件不会被Git追踪和推送。
方法3:使用示例配置文件
通过示例文件公开配置结构,本地保留真实敏感信息:
- 创建
config.py.example文件,写入占位内容:# 示例配置文件,请复制为config.py并填入真实Token DISCORD_BOT_TOKEN='你的机器人Token' - 将
config.py.example推送到GitHub,供他人参考配置结构。 - 本地创建
config.py,写入真实Token,并将config.py添加到.gitignore中。 - 代码中导入配置:
import discord from discord.ext import commands from config import DISCORD_BOT_TOKEN bot = commands.Bot(command_prefix='!', intents=discord.Intents.all()) @bot.event async def on_ready(): print(f"已登录为 {bot.user.name}") bot.run(DISCORD_BOT_TOKEN)
重要注意事项
- 如果已经不小心将Token推送到GitHub,立即前往Discord开发者面板重置机器人Token,避免账号被恶意利用。
- 永远不要在代码中硬编码Token,哪怕是注释里也不行,确保敏感信息全程脱离代码仓库。
内容的提问来源于stack exchange,提问作者John Han
相关产品推荐
相关产品推荐

