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)
|
||||
// ВАЖНО: 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 = {
|
||||
|
||||
@@ -163,10 +163,19 @@ export default function PlansNew() {
|
||||
const telegramWebApp = (window as any).Telegram?.WebApp;
|
||||
const user = telegramWebApp?.initDataUnsafe?.user;
|
||||
|
||||
const response = await fetch('/api/create-user', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
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,
|
||||
@@ -174,7 +183,14 @@ export default function PlansNew() {
|
||||
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(requestBody),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
Reference in New Issue
Block a user