debug: add detailed logging for username generation

This commit is contained in:
Umbrix Dev
2026-02-09 05:06:46 +03:00
parent 0d2d862d44
commit c033844f01
2 changed files with 36 additions and 11 deletions

View File

@@ -64,23 +64,32 @@ export async function POST(request: NextRequest) {
// 3. Генерируем уникальное имя пользователя (приоритет: @username > firstName_ID > userID > random)
// ВАЖНО: Marzban принимает только a-z, 0-9 и подчеркивания, БЕЗ @
let username: string;
let usernameSource: string;
if (telegramUsername) {
// Есть @username в Telegram - используем БЕЗ @
username = telegramUsername.toLowerCase().replace(/[^a-z0-9_]/g, '_');
usernameSource = 'telegram_username';
} else if (firstName && telegramId) {
// Нет username, используем имя + ID
const cleanName = firstName.toLowerCase().replace(/[^a-z0-9]/g, '_');
username = `${cleanName}_${telegramId}`;
usernameSource = 'firstName_telegramId';
} else if (telegramId) {
// Только ID
username = `user_${telegramId}`;
usernameSource = 'telegramId_only';
} else {
// Для тестирования вне Telegram
username = `user_${Date.now()}_${Math.random().toString(36).substring(7)}`;
usernameSource = 'random_timestamp';
}
logger.debug('✅ Generated username:', username);
logger.debug('📊 Telegram data:', { telegramId, telegramUsername, firstName, lastName });
logger.info('👤 USERNAME GENERATION:', {
source: usernameSource,
username,
input: { telegramId, telegramUsername, firstName, lastName }
});
// 4. Определяем inbounds на основе выбранных локаций
let userInbounds = {

View File

@@ -163,18 +163,34 @@ export default function PlansNew() {
const telegramWebApp = (window as any).Telegram?.WebApp;
const user = telegramWebApp?.initDataUnsafe?.user;
console.log('🔍 TELEGRAM USER DATA:', {
hasWebApp: !!telegramWebApp,
hasInitData: !!telegramWebApp?.initDataUnsafe,
hasUser: !!user,
user: user ? {
id: user.id,
username: user.username,
first_name: user.first_name,
last_name: user.last_name,
} : null
});
const requestBody = {
planType,
period,
locationIds,
telegramId: user?.id || null,
telegramUsername: user?.username || null,
firstName: user?.first_name || null,
lastName: user?.last_name || null,
};
console.log('📤 REQUEST BODY:', requestBody);
const response = await fetch('/api/create-user', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
planType,
period,
locationIds,
telegramId: user?.id || null,
telegramUsername: user?.username || null,
firstName: user?.first_name || null,
lastName: user?.last_name || null,
}),
body: JSON.stringify(requestBody),
});
const data = await response.json();