nakama/🔧_TELEGRAM_OAUTH.txt

99 lines
4.5 KiB
Plaintext
Raw Normal View History

2025-11-04 21:51:05 +00:00
╔═══════════════════════════════════════════════════════════════════╗
║ ║
║ 🔧 TELEGRAM OAUTH ДЛЯ СТОРОННИХ КЛИЕНТОВ 🔧 ║
║ ║
╚═══════════════════════════════════════════════════════════════════╝
ИЗМЕНЕНИЯ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 1. Убран Mock User
• Удалена функция getMockUser()
• Убрано использование mock user из App.jsx
• Убрано из api.js interceptor
✅ 2. Добавлен Telegram Login Widget
• Компонент TelegramLogin.jsx
• Использует официальный Telegram Login Widget
• Показывается для сторонних клиентов и браузера
✅ 3. Backend OAuth Route
• /api/auth/oauth - новый endpoint
• Проверка подписи Telegram OAuth
• Создание/обновление пользователя
✅ 4. Обновлена логика авторизации
• Если нет Telegram Web App API → показывается Login Widget
• После авторизации через Widget → создается сессия
НАСТРОЙКА:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Получить имя бота от @BotFather
• Используется для Telegram Login Widget
2. Установить переменную окружения:
VITE_TELEGRAM_BOT_NAME=ваше_имя_бота
3. Настроить домен в BotFather:
• /setdomain для вашего домена
• Например: nakama.glpshchn.ru
ОБНОВЛЕНИЕ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Frontend:
• frontend/src/App.jsx
• frontend/src/components/TelegramLogin.jsx (новый)
• frontend/src/components/TelegramLogin.css (новый)
• frontend/src/utils/api.js
• frontend/src/utils/telegram.js
Backend:
• backend/routes/auth.js
КОМАНДЫ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cd /Users/glpshchn/Desktop/nakama
# Frontend
scp frontend/src/App.jsx root@ваш_IP:/var/www/nakama/frontend/src/
scp frontend/src/components/TelegramLogin.jsx root@ваш_IP:/var/www/nakama/frontend/src/components/
scp frontend/src/components/TelegramLogin.css root@ваш_IP:/var/www/nakama/frontend/src/components/
scp frontend/src/utils/api.js frontend/src/utils/telegram.js root@ваш_IP:/var/www/nakama/frontend/src/utils/
# Backend
scp backend/routes/auth.js root@ваш_IP:/var/www/nakama/backend/routes/
# На сервере
ssh root@ваш_IP "cd /var/www/nakama/frontend && npm run build"
ssh root@ваш_IP "pm2 restart nakama-backend"
ВАЖНО:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Telegram Login Widget требует:
• Домен должен быть настроен в BotFather
• Использовать HTTPS (в production)
• Правильное имя бота
2. Проверка подписи:
• Включена, если есть TELEGRAM_BOT_TOKEN
В production рекомендуется строгая проверка
3. Безопасность:
• Теперь используется официальная авторизация Telegram
• Нет mock users
Все пользователи верифицированы через Telegram
2 минуты
2025-11-20 20:50:14 +00:00