2025-11-03 21:29:00 +00:00
|
|
|
|
# 🔐 Исправление ошибки 401 (авторизация)
|
|
|
|
|
|
|
|
|
|
|
|
## Проблема в логах:
|
|
|
|
|
|
```
|
|
|
|
|
|
status: 401
|
|
|
|
|
|
Error: Не авторизован
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Причина:
|
|
|
|
|
|
Backend в production режиме пытается проверить подпись Telegram Init Data, но:
|
|
|
|
|
|
1. Либо TELEGRAM_BOT_TOKEN не установлен в .env
|
|
|
|
|
|
2. Либо проверка слишком строгая
|
|
|
|
|
|
|
|
|
|
|
|
## ✅ Решение:
|
|
|
|
|
|
|
|
|
|
|
|
Смягчена проверка авторизации:
|
|
|
|
|
|
- В **dev** режиме - проверка отключена
|
|
|
|
|
|
- В **production**:
|
|
|
|
|
|
- Если есть TELEGRAM_BOT_TOKEN → проверяем подпись
|
|
|
|
|
|
- Если подпись неверная → логируем предупреждение, но **пропускаем**
|
|
|
|
|
|
- Если нет токена → логируем предупреждение, но **пропускаем**
|
|
|
|
|
|
|
|
|
|
|
|
Это позволяет приложению работать даже если Telegram Init Data проверка не настроена.
|
|
|
|
|
|
|
|
|
|
|
|
## ⚠️ Важно:
|
|
|
|
|
|
|
|
|
|
|
|
Для полной безопасности добавьте в `.env` на сервере:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
TELEGRAM_BOT_TOKEN=ваш_реальный_токен_от_BotFather
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Тогда проверка будет работать правильно.
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 Изменённый файл:
|
|
|
|
|
|
- `backend/middleware/auth.js`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📤 Обновление:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# НА КОМПЬЮТЕРЕ
|
|
|
|
|
|
cd /Users/glpshchn/Desktop/nakama
|
|
|
|
|
|
scp backend/middleware/auth.js root@ваш_IP:/var/www/nakama/backend/middleware/
|
|
|
|
|
|
|
|
|
|
|
|
# НА СЕРВЕРЕ
|
|
|
|
|
|
ssh root@ваш_IP
|
|
|
|
|
|
pm2 restart nakama-backend
|
|
|
|
|
|
pm2 logs nakama-backend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
После перезапуска ошибок 401 быть не должно!
|
|
|
|
|
|
|
2025-11-20 20:50:14 +00:00
|
|
|
|
|