nakama/🔧_TELEGRAM_OAUTH.txt

99 lines
4.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

╔═══════════════════════════════════════════════════════════════════╗
║ ║
║ 🔧 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 минуты