Update files
This commit is contained in:
parent
51530709a6
commit
e3a363e3d9
|
|
@ -31,22 +31,38 @@ function App() {
|
|||
// Инициализация Telegram Web App
|
||||
initTelegramApp()
|
||||
|
||||
// Получить данные пользователя из Telegram
|
||||
const telegramUser = getTelegramUser()
|
||||
// Проверить наличие Telegram Web App API
|
||||
const tg = window.Telegram?.WebApp
|
||||
|
||||
// Если нет Telegram Web App API, показываем Login Widget
|
||||
// Если нет Telegram Web App API вообще, показываем Login Widget
|
||||
if (!tg) {
|
||||
setShowLogin(true)
|
||||
setLoading(false)
|
||||
return
|
||||
}
|
||||
|
||||
// Получить данные пользователя из Telegram
|
||||
let telegramUser = getTelegramUser()
|
||||
|
||||
// Если нет пользователя в initData, но есть WebApp API - дать время на инициализацию
|
||||
if (!telegramUser) {
|
||||
// Дать немного времени на инициализацию (Telegram Web App может загружаться асинхронно)
|
||||
await new Promise(resolve => setTimeout(resolve, 200))
|
||||
telegramUser = getTelegramUser()
|
||||
|
||||
// Если все еще нет пользователя, показываем Login Widget
|
||||
if (!telegramUser) {
|
||||
setShowLogin(true)
|
||||
setLoading(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Верифицировать через API
|
||||
const userData = await verifyAuth()
|
||||
setUser(userData)
|
||||
|
||||
// Обработать параметр start из Telegram (для открытия конкретного поста)
|
||||
const tg = window.Telegram?.WebApp
|
||||
if (tg?.startParam) {
|
||||
// Если startParam начинается с "post_", это ссылка на пост
|
||||
if (tg.startParam.startsWith('post_')) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,11 @@
|
|||
"redis": "^4.6.11",
|
||||
"socket.io": "^4.6.0",
|
||||
"i18next": "^23.7.8",
|
||||
"socket.io-client": "^4.6.0"
|
||||
"socket.io-client": "^4.6.0",
|
||||
"helmet": "^7.1.0",
|
||||
"express-mongo-sanitize": "^2.2.0",
|
||||
"xss-clean": "^0.1.4",
|
||||
"hpp": "^0.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^3.0.1",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,136 @@
|
|||
╔═══════════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ 🔧 ИСПРАВЛЕНИЯ ДЛЯ СЕРВЕРА 🔧 ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
|
||||
ИСПРАВЛЕНО:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✅ 1. Добавлены недостающие зависимости в package.json
|
||||
• helmet: ^7.1.0
|
||||
• express-mongo-sanitize: ^2.2.0
|
||||
• xss-clean: ^0.1.4
|
||||
• hpp: ^0.2.3
|
||||
|
||||
✅ 2. Исправлена логика авторизации в App.jsx
|
||||
• Проверка наличия window.Telegram?.WebApp перед проверкой пользователя
|
||||
• Добавлена задержка на инициализацию Telegram Web App (200ms)
|
||||
• Правильная обработка официального клиента Telegram
|
||||
|
||||
|
||||
КОМАНДЫ ДЛЯ ОБНОВЛЕНИЯ НА СЕРВЕРЕ:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# 1. Подключиться к серверу
|
||||
ssh root@nakama.glpshchn.ru
|
||||
|
||||
# 2. Остановить приложение (чтобы избежать постоянных ребутов)
|
||||
pm2 stop nakama-backend
|
||||
|
||||
# 3. Перейти в директорию проекта
|
||||
cd /var/www/nakama
|
||||
|
||||
# 4. Обновить код (если используете Git)
|
||||
git pull origin main
|
||||
|
||||
# 5. Установить недостающие зависимости
|
||||
npm install helmet express-mongo-sanitize xss-clean hpp --save
|
||||
|
||||
# Или установить все зависимости заново
|
||||
npm install --production
|
||||
|
||||
# 6. Проверить что зависимости установлены
|
||||
npm list helmet express-mongo-sanitize xss-clean hpp
|
||||
|
||||
# 7. Пересобрать frontend (с исправленной логикой авторизации)
|
||||
cd frontend
|
||||
npm run build
|
||||
cd ..
|
||||
|
||||
# 8. Проверить что сервер запускается (вручную)
|
||||
cd backend
|
||||
node server.js
|
||||
# Если есть ошибки - исправить их
|
||||
# Если все ок - остановить (Ctrl+C)
|
||||
|
||||
# 9. Запустить через PM2
|
||||
pm2 start backend/server.js --name nakama-backend --update-env
|
||||
|
||||
# Или если уже есть конфиг:
|
||||
pm2 restart nakama-backend --update-env
|
||||
|
||||
# 10. Проверить статус
|
||||
pm2 status
|
||||
pm2 logs nakama-backend --lines 50
|
||||
|
||||
|
||||
БЫСТРАЯ КОМАНДА (одна строка):
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
ssh root@nakama.glpshchn.ru "cd /var/www/nakama && pm2 stop nakama-backend && npm install helmet express-mongo-sanitize xss-clean hpp --save && cd frontend && npm run build && cd .. && pm2 start backend/server.js --name nakama-backend --update-env && sleep 2 && pm2 status && pm2 logs nakama-backend --lines 30"
|
||||
|
||||
|
||||
ПРОВЕРКА ПОСЛЕ ОБНОВЛЕНИЯ:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# 1. Проверить что приложение запущено
|
||||
pm2 status
|
||||
# Должно быть: nakama-backend | online
|
||||
|
||||
# 2. Проверить логи (не должно быть ошибок MODULE_NOT_FOUND)
|
||||
pm2 logs nakama-backend --lines 50
|
||||
# Не должно быть: Error: Cannot find module 'helmet'
|
||||
|
||||
# 3. Проверить health endpoint
|
||||
curl http://localhost:3000/health
|
||||
# Должно вернуть: {"status":"ok","environment":"production",...}
|
||||
|
||||
# 4. Проверить через браузер
|
||||
curl https://nakama.glpshchn.ru/health
|
||||
# Должно вернуть: {"status":"ok",...}
|
||||
|
||||
# 5. Проверить Nginx
|
||||
sudo systemctl status nginx
|
||||
sudo nginx -t
|
||||
|
||||
# 6. Проверить логи Nginx
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
# Не должно быть 502 ошибок
|
||||
|
||||
|
||||
ЧТО ИСПРАВЛЕНО:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✅ Проблема 1: Error: Cannot find module 'helmet'
|
||||
РЕШЕНИЕ: Добавлены зависимости в package.json
|
||||
|
||||
✅ Проблема 2: Даже с офф клиента Telegram просит авторизацию
|
||||
РЕШЕНИЕ: Исправлена логика в App.jsx - теперь правильно проверяет
|
||||
наличие Telegram Web App API и дает время на инициализацию
|
||||
|
||||
✅ Проблема 3: 502 ошибка и постоянные ребуты
|
||||
РЕШЕНИЕ: После установки зависимостей приложение должно запускаться
|
||||
без ошибок и перестать ребутиться
|
||||
|
||||
|
||||
ВАЖНО:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
1. После установки зависимостей ОБЯЗАТЕЛЬНО пересобрать frontend
|
||||
(npm run build в директории frontend)
|
||||
|
||||
2. Перезапустить PM2 с флагом --update-env для обновления переменных
|
||||
|
||||
3. Проверить логи PM2 после перезапуска
|
||||
|
||||
4. Если все еще есть ошибки - проверить что все зависимости установлены:
|
||||
npm list helmet express-mongo-sanitize xss-clean hpp
|
||||
|
||||
|
||||
ГОТОВО! ✅
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
После выполнения этих команд все три проблемы должны быть решены!
|
||||
|
||||
Loading…
Reference in New Issue