Перейти к содержимому

Аутентификация

Каждый запрос бота к Флудилке (REST и Gateway) должен содержать заголовок Authorization с бот-токеном.

Токен имеет форму:

<application_id>.<secret>
  • application_id — несекретный ID приложения (тот же что в инвайт-ссылке)
  • secret — секретная часть, выдаётся один раз при сбросе токена

Вместе они дают полный доступ к бот-аккаунту. Ни одна половина сама по себе не работает.

Префикс обязательный — это Bot:

GET /api/v1/users/@me HTTP/1.1
Host: floodilka.com
Authorization: Bot 1496956937664585746.ZjBkYjE5ODI3NjQ4MGY4MTc1NzFjMjY1

В коде:

await fetch('https://floodilka.com/api/v1/users/@me', {
headers: {Authorization: `Bot ${process.env.FLOODILKA_BOT_TOKEN}`},
});

В IDENTIFY передаётся тот же токен, без префикса Bot:

{
"op": 2,
"d": {
"token": "1496956937664585746.ZjBkYjE5ODI3NjQ4MGY4MTc1NzFjMjY1",
"properties": {"os": "linux", "browser": "mybot", "device": "mybot"}
}
}

Обратите внимание — в gateway токен без Bot в отличие от REST. Если IDENTIFY включает префикс — сервер закроет соединение 4004 AUTHENTICATION_FAILED.

Никогда не:

  • Не коммитьте токен в git
  • Не вставляйте в клиентские приложения (extension, mobile app)
  • Не показывайте в скриншотах
  • Не отправляйте в чаты/поддержку

Правильно:

  • .env файл, добавленный в .gitignore
  • Секрет-менеджер хостинга (Railway Variables, Fly.io secrets, Docker secrets)
  • Переменная окружения на VPS через systemd EnvironmentFile

Если токен утёк — немедленно сбросьте его в Настройки → Приложения и боты → вкладка Бот → Сбросить токен. Старый токен инвалидируется в момент выдачи нового; все работающие процессы со старым токеном получат 401 Unauthorized на REST или 4004 AUTHENTICATION_FAILED на Gateway.

СтатусКогдаЧто делать
401 UnauthorizedТокен не передан, обрезан или сброшенПроверить .env, пересбросить если надо
403 ForbiddenТокен валиден, но действия недоступны (нет прав, бот не в гильдии)Проверить инвайт-ссылку, посмотреть Права доступа
Close codeКогдаЧто делать
4004 AUTHENTICATION_FAILEDТокен невалиденНе реконнектиться. Сбросить и обновить токен
4003 NOT_AUTHENTICATEDКлиент отправил payload до IDENTIFYРеконнект с правильным порядком HELLO → IDENTIFY

Подробнее — Коды закрытия.