6.0 KiB
6.0 KiB
🔍 Отладка админского чата
Проблема
Админский чат не подключается в системе модерации.
Что проверить
1. Откройте DevTools в системе модерации
Нажмите F12 и откройте вкладку Console
2. Перейдите на вкладку "Чат"
Должны увидеть логи:
[Chat] Инициализация чата
[Chat] User данные: { username: "glpshchn00", telegramId: "...", hasUsername: true, hasTelegramId: true }
[Chat] Подключение к: http://localhost:3000/mod-chat
[Chat] ✅ WebSocket подключен, ID: abc123
[Chat] Отправка auth с данными: { username: "glpshchn00", telegramId: "..." }
Затем должно быть:
✅ Успех:
[Chat] ✅ Авторизация успешна!
❌ Ошибка - нет прав:
[Chat] ❌ Нет прав для доступа к чату
[Chat] user.username: glpshchn00
[Chat] user.telegramId: 123456789
[Chat] Вы должны быть в списке MODERATION_OWNER_USERNAMES
❌ Ошибка подключения:
[Chat] ❌ Ошибка подключения: timeout
Решения
Проблема: "Нет прав доступа"
Причина: Ваш username не в списке админов на сервере.
Решение:
- Откройте
.envна сервере:
nano .env
- Проверьте/добавьте:
MODERATION_OWNER_USERNAMES=glpshchn00
- Перезапустите backend:
docker-compose restart backend
- Проверьте логи:
docker-compose logs backend | grep "Mod chat"
Должно быть:
[INFO] Mod chat auth success { username: 'glpshchn00', isOwner: true }
Проблема: "Ошибка подключения: timeout"
Причина: Backend недоступен или неправильный URL.
Решение:
- Проверьте что backend запущен:
docker-compose ps backend
- Проверьте
VITE_API_URLв moderation frontend:
# В docker-compose.yml
environment:
- VITE_API_URL=http://localhost:3000 # Для локальной разработки
- VITE_API_URL=https://ваш-домен.com # Для production
- Проверьте CORS в backend
.env:
CORS_ORIGIN=http://localhost:5174,https://ваш-домен.com
Проблема: user.username или user.telegramId пустые
Причина: Пользователь не авторизован.
Решение:
- Убедитесь что открыли через Telegram бота
- Проверьте логи auth:
[Chat] user.username: undefined ← ПРОБЛЕМА!
- Попробуйте переоткрыть систему модерации из бота
Проблема: WebSocket вообще не подключается
Причина: CORS блокирует WebSocket.
Решение:
- Проверьте browser console на ошибки CORS:
Access to XMLHttpRequest at 'http://...' from origin '...' has been blocked by CORS
- Добавьте origin в
.env:
CORS_ORIGIN=http://localhost:5173,http://localhost:5174,https://web.telegram.org
- Перезапустите:
docker-compose restart backend
Backend логи
Успешное подключение:
docker-compose logs backend | tail -20
Должно быть:
✅ WebSocket подключен: abc123
[INFO] Mod chat auth success { username: 'glpshchn00', isOwner: true, isAdmin: false }
Ошибка авторизации:
[WARN] Mod chat auth failed: no username/telegramId
# или
[WARN] Mod chat access denied { username: '...', telegramId: '...' }
Быстрая проверка
1. Backend работает?
curl http://localhost:3000/health
# Должен вернуть 200 OK
2. WebSocket работает?
curl http://localhost:3000/socket.io/
# Должен вернуть: {"code":0,"message":"Transport unknown"}
# Это нормально - значит WebSocket сервер работает
3. Username в списке?
# Проверьте переменную
docker-compose exec backend printenv | grep MODERATION_OWNER
Должно быть:
MODERATION_OWNER_USERNAMES=glpshchn00
Полная перезагрузка
Если ничего не помогло:
# 1. Остановите всё
docker-compose down
# 2. Проверьте .env
cat .env | grep -E "MODERATION|CORS"
# 3. Запустите заново
docker-compose up -d
# 4. Смотрите логи
docker-compose logs -f backend
# 5. Переоткройте систему модерации из бота
Контрольный список
- Backend запущен (
docker-compose ps) - MODERATION_OWNER_USERNAMES содержит ваш username
- CORS_ORIGIN включает домен системы модерации
- User авторизован (есть username и telegramId)
- VITE_API_URL указывает на правильный backend
- Нет ошибок CORS в browser console
- WebSocket сервер инициализирован (логи backend)
- Firewall не блокирует WebSocket порты
Если всё еще не работает
Отправьте в @NakamaReportbot:
- Скриншот DevTools Console (вкладка Чат)
- Логи backend:
docker-compose logs backend > backend-logs.txt
- Переменные окружения (без секретов):
cat .env | grep -v SECRET | grep -v KEY | grep -v PASSWORD > env-safe.txt
После исправления чат должен подключиться автоматически при открытии вкладки "Чат"! ✅