From 661a96c03c92340aa392f2080892208b4655fa40 Mon Sep 17 00:00:00 2001 From: glpshchn <464976@niuitmo.ru> Date: Mon, 15 Dec 2025 04:44:34 +0300 Subject: [PATCH] Update files --- moderation/frontend/src/App.jsx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/moderation/frontend/src/App.jsx b/moderation/frontend/src/App.jsx index ca789e2..a77abe7 100644 --- a/moderation/frontend/src/App.jsx +++ b/moderation/frontend/src/App.jsx @@ -237,8 +237,41 @@ export default function App() { // Инициализировать виджет только если нет WebApp initData и показана форма входа 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 виджета + // Telegram виджет может вызывать её напрямую ИЛИ через postMessage const onTelegramAuthHandler = async (userData) => { console.log('[Telegram Widget] 🔵 onTelegramAuth вызван!'); console.log('[Telegram Widget] Данные от виджета:', userData);