# 🔍 Отладка админского чата ## Проблема Админский чат не подключается в системе модерации. ## Что проверить ### 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 не в списке админов на сервере. **Решение:** 1. Откройте `.env` на сервере: ```bash nano .env ``` 2. Проверьте/добавьте: ```env MODERATION_OWNER_USERNAMES=glpshchn00 ``` 3. Перезапустите backend: ```bash docker-compose restart backend ``` 4. Проверьте логи: ```bash docker-compose logs backend | grep "Mod chat" ``` Должно быть: ``` [INFO] Mod chat auth success { username: 'glpshchn00', isOwner: true } ``` ### Проблема: "Ошибка подключения: timeout" **Причина:** Backend недоступен или неправильный URL. **Решение:** 1. Проверьте что backend запущен: ```bash docker-compose ps backend ``` 2. Проверьте `VITE_API_URL` в moderation frontend: ```bash # В docker-compose.yml environment: - VITE_API_URL=http://localhost:3000 # Для локальной разработки - VITE_API_URL=https://ваш-домен.com # Для production ``` 3. Проверьте CORS в backend `.env`: ```env CORS_ORIGIN=http://localhost:5174,https://ваш-домен.com ``` ### Проблема: user.username или user.telegramId пустые **Причина:** Пользователь не авторизован. **Решение:** 1. Убедитесь что открыли через Telegram бота 2. Проверьте логи auth: ``` [Chat] user.username: undefined ← ПРОБЛЕМА! ``` 3. Попробуйте переоткрыть систему модерации из бота ### Проблема: WebSocket вообще не подключается **Причина:** CORS блокирует WebSocket. **Решение:** 1. Проверьте browser console на ошибки CORS: ``` Access to XMLHttpRequest at 'http://...' from origin '...' has been blocked by CORS ``` 2. Добавьте origin в `.env`: ```env CORS_ORIGIN=http://localhost:5173,http://localhost:5174,https://web.telegram.org ``` 3. Перезапустите: ```bash docker-compose restart backend ``` ## Backend логи ### Успешное подключение: ```bash 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 работает? ```bash curl http://localhost:3000/health # Должен вернуть 200 OK ``` ### 2. WebSocket работает? ```bash curl http://localhost:3000/socket.io/ # Должен вернуть: {"code":0,"message":"Transport unknown"} # Это нормально - значит WebSocket сервер работает ``` ### 3. Username в списке? ```bash # Проверьте переменную docker-compose exec backend printenv | grep MODERATION_OWNER ``` Должно быть: ``` MODERATION_OWNER_USERNAMES=glpshchn00 ``` ## Полная перезагрузка Если ничего не помогло: ```bash # 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: 1. Скриншот DevTools Console (вкладка Чат) 2. Логи backend: ```bash docker-compose logs backend > backend-logs.txt ``` 3. Переменные окружения (без секретов): ```bash cat .env | grep -v SECRET | grep -v KEY | grep -v PASSWORD > env-safe.txt ``` --- **После исправления чат должен подключиться автоматически при открытии вкладки "Чат"!** ✅