debug: add detailed logging for username generation
This commit is contained in:
@@ -64,23 +64,32 @@ export async function POST(request: NextRequest) {
|
|||||||
// 3. Генерируем уникальное имя пользователя (приоритет: @username > firstName_ID > userID > random)
|
// 3. Генерируем уникальное имя пользователя (приоритет: @username > firstName_ID > userID > random)
|
||||||
// ВАЖНО: Marzban принимает только a-z, 0-9 и подчеркивания, БЕЗ @
|
// ВАЖНО: Marzban принимает только a-z, 0-9 и подчеркивания, БЕЗ @
|
||||||
let username: string;
|
let username: string;
|
||||||
|
let usernameSource: string;
|
||||||
|
|
||||||
if (telegramUsername) {
|
if (telegramUsername) {
|
||||||
// Есть @username в Telegram - используем БЕЗ @
|
// Есть @username в Telegram - используем БЕЗ @
|
||||||
username = telegramUsername.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
username = telegramUsername.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
||||||
|
usernameSource = 'telegram_username';
|
||||||
} else if (firstName && telegramId) {
|
} else if (firstName && telegramId) {
|
||||||
// Нет username, используем имя + ID
|
// Нет username, используем имя + ID
|
||||||
const cleanName = firstName.toLowerCase().replace(/[^a-z0-9]/g, '_');
|
const cleanName = firstName.toLowerCase().replace(/[^a-z0-9]/g, '_');
|
||||||
username = `${cleanName}_${telegramId}`;
|
username = `${cleanName}_${telegramId}`;
|
||||||
|
usernameSource = 'firstName_telegramId';
|
||||||
} else if (telegramId) {
|
} else if (telegramId) {
|
||||||
// Только ID
|
// Только ID
|
||||||
username = `user_${telegramId}`;
|
username = `user_${telegramId}`;
|
||||||
|
usernameSource = 'telegramId_only';
|
||||||
} else {
|
} else {
|
||||||
// Для тестирования вне Telegram
|
// Для тестирования вне Telegram
|
||||||
username = `user_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
username = `user_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
||||||
|
usernameSource = 'random_timestamp';
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug('✅ Generated username:', username);
|
logger.info('👤 USERNAME GENERATION:', {
|
||||||
logger.debug('📊 Telegram data:', { telegramId, telegramUsername, firstName, lastName });
|
source: usernameSource,
|
||||||
|
username,
|
||||||
|
input: { telegramId, telegramUsername, firstName, lastName }
|
||||||
|
});
|
||||||
|
|
||||||
// 4. Определяем inbounds на основе выбранных локаций
|
// 4. Определяем inbounds на основе выбранных локаций
|
||||||
let userInbounds = {
|
let userInbounds = {
|
||||||
|
|||||||
@@ -163,18 +163,34 @@ export default function PlansNew() {
|
|||||||
const telegramWebApp = (window as any).Telegram?.WebApp;
|
const telegramWebApp = (window as any).Telegram?.WebApp;
|
||||||
const user = telegramWebApp?.initDataUnsafe?.user;
|
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', {
|
const response = await fetch('/api/create-user', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(requestBody),
|
||||||
planType,
|
|
||||||
period,
|
|
||||||
locationIds,
|
|
||||||
telegramId: user?.id || null,
|
|
||||||
telegramUsername: user?.username || null,
|
|
||||||
firstName: user?.first_name || null,
|
|
||||||
lastName: user?.last_name || null,
|
|
||||||
}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|||||||
Reference in New Issue
Block a user