Update files

This commit is contained in:
glpshchn 2025-12-15 04:44:34 +03:00
parent 4a1dd09c4b
commit 661a96c03c
1 changed files with 33 additions and 0 deletions

View File

@ -237,8 +237,41 @@ export default function App() {
// Инициализировать виджет только если нет WebApp initData и показана форма входа // Инициализировать виджет только если нет WebApp initData и показана форма входа
if (!telegramApp?.initData && showLoginForm && telegramWidgetRef.current) { if (!telegramApp?.initData && showLoginForm && telegramWidgetRef.current) {
// Обработчик сообщений от Telegram виджета (через postMessage)
const handleTelegramMessage = async (event) => {
// Логируем все сообщения для отладки
console.log('[Telegram Widget] 📨 Получено postMessage:', {
origin: event.origin,
data: event.data,
source: event.source
});
// Проверяем, что сообщение от Telegram виджета
if (event.origin !== 'https://oauth.telegram.org') {
console.log('[Telegram Widget] Игнорируем сообщение от другого origin:', event.origin);
return;
}
console.log('[Telegram Widget] ✅ Сообщение от oauth.telegram.org');
console.log('[Telegram Widget] 📨 Данные:', event.data);
// Telegram виджет отправляет данные через postMessage
if (event.data && typeof event.data === 'object') {
const userData = event.data;
console.log('[Telegram Widget] 🔵 Данные от виджета через postMessage:', userData);
await onTelegramAuthHandler(userData);
} else {
console.log('[Telegram Widget] ⚠️ Данные не в ожидаемом формате:', typeof event.data);
}
};
// Добавить обработчик postMessage
window.addEventListener('message', handleTelegramMessage);
console.log('[Telegram Widget] ✅ Обработчик postMessage добавлен');
// Глобальная функция для обработки авторизации через виджет // Глобальная функция для обработки авторизации через виджет
// ВАЖНО: должна быть в window для Telegram виджета // ВАЖНО: должна быть в window для Telegram виджета
// Telegram виджет может вызывать её напрямую ИЛИ через postMessage
const onTelegramAuthHandler = async (userData) => { const onTelegramAuthHandler = async (userData) => {
console.log('[Telegram Widget] 🔵 onTelegramAuth вызван!'); console.log('[Telegram Widget] 🔵 onTelegramAuth вызван!');
console.log('[Telegram Widget] Данные от виджета:', userData); console.log('[Telegram Widget] Данные от виджета:', userData);