Bezpečné uložení tokenu Discord bota
Jak uložit token Discord bota do .env, načíst ho přes dotenv, nedostat ho na GitHub a co dělat, když token unikne.
Token je heslo tvého bota. Kdo ho má, může bota plně ovládat – posílat zprávy, mazat kanály nebo banovat členy na všech serverech, kde bot je. Proto ho nikdy nepiš přímo do kódu a nikdy ho nesdílej.
1. Ulož token do souboru .env
V kořenové složce bota vytvoř soubor .env:
DISCORD_TOKEN=sem_vloz_svuj_token
Bez uvozovek a bez mezer kolem rovnítka. Na hostingu soubor vytvoříš přímo ve správci souborů v panelu dash.coldhost.eu.
2. Načti token v kódu
Node.js (discord.js)
Nainstaluj balíček dotenv (npm install dotenv) a na začátek hlavního souboru přidej:
require('dotenv').config();
// ...
client.login(process.env.DISCORD_TOKEN);
Novější verze Node.js umí .env načíst i samy přes parametr --env-file=.env, dotenv je ale nejjednodušší univerzální volba.
Python (discord.py)
Přidej python-dotenv do requirements.txt a v kódu:
import os
from dotenv import load_dotenv
load_dotenv()
client.run(os.getenv("DISCORD_TOKEN"))
3. Nikdy nedávej token na GitHub
Pokud kód verzuješ v Gitu, vytvoř soubor .gitignore a přidej do něj:
.env
node_modules/
__pycache__/
Do repozitáře místo toho přidej .env.example s prázdnou hodnotou, aby ostatní věděli, co mají vyplnit.
Smazání tokenu v novém commitu nestačí – zůstává v historii repozitáře. Veřejné repozitáře navíc automaticky prochází boti, kteří uniklé tokeny hledají. Pokud se token dostal na GitHub, ber ho jako prozrazený a hned ho resetuj.
4. Reset tokenu v Developer Portalu
- Otevři Discord Developer Portal (discord.com/developers/applications) a vyber svou aplikaci.
- Přejdi do sekce Bot a klikni na Reset Token.
- Potvrď akci (případně zadej 2FA kód) a nový token zkopíruj – zobrazí se jen jednou.
- Nový token vlož do
.envna hostingu a bota restartuj.
Starý token přestane okamžitě fungovat.
Do tiketu podpory ani na Discord token nikdy nevkládej. Pro řešení problémů stačí popis chyby a výpis z konzole – token v něm případně zakryj.
Pořád si nevíš rady? Rádi pomůžeme.