您会将 discord.py 机器人的机器人令牌存储在哪里?

Where would you store the bot token for a discord.py bot?

您通常将 discord 机器人或任何集成机器人令牌的程序的机器人 token/API 密钥存储在哪里?我只是将我的存储在 main.py 文件中。是否有商定的方式来存储密钥和令牌,例如 discord 机器人令牌?我的机器人工作正常,但我想知道是否有特定的方法来存储这些值,或者它是否有优先权,比如使用单引号或双引号。

我见过一个不和谐令牌存储在单独的 JSON 文件中的例子。这是存储密钥和令牌的首选方式吗?

我将向您展示我正在谈论的一个简单示例。

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='-', case_insensitive=True)


@bot.event
async def on_ready():
    print(f"{bot.user.name} is online and ready to go! Bot id: {bot.user.id}")


bot.run('botToken')
# I have mine placed right here in the botToken value.

仅当您从事业余爱好项目时才应考虑此快速概述。如果你在做任何商业广告,请认真对待它。

将令牌留在您的文件中(硬编码)

专业版

  • 快速

魂斗罗

  • 如果您忘记了您的文件中有您的令牌,您的令牌很容易暴露,例如上传到 Github

将其放入 JSON/toml/other 单独的文件中

专业版

  • 还是挺快的
  • 您可以 gitignore 存储令牌的文件

魂斗罗

  • 每次需要时都需要解析令牌
  • 如果有人获取了您的文件(例如,如果您忘记了 gitignore),仍然不安全

将您的令牌保存为系统变量

专业版

  • 不能在不同的机器上工作 -> 很难有人掌握它
  • 很快

魂斗罗

  • 您需要能够访问系统变量
  • 难以容器化

这些是主要的“快速而肮脏”的选项。如果您对任何特定选项的工作原理有疑问,可以在这里提问。如果您想知道如何实现特定选项,请在 Whosebug 上提出另一个问题。