Update files
This commit is contained in:
parent
4a1dd09c4b
commit
661a96c03c
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue