diff --git a/backend/src/main.ts b/backend/src/main.ts index 1d216c0..36fce77 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -11,20 +11,30 @@ async function bootstrap() { const corsOrigin = configService.get('CORS_ORIGIN') || 'http://localhost:5173'; const allowedOrigins = corsOrigin.split(',').map(origin => origin.trim()); + console.log('=== Backend Starting ==='); + console.log(`CORS_ORIGIN from env: ${configService.get('CORS_ORIGIN') || 'NOT SET (using default)'}`); + console.log(`CORS allowed origins: ${allowedOrigins.join(', ')}`); + app.enableCors({ origin: (origin, callback) => { + // Логируем все входящие запросы + console.log(`[CORS] Request from origin: ${origin || 'NO ORIGIN (direct request)'}`); + // Разрешаем запросы без origin (например, Postman, мобильные приложения) if (!origin) { + console.log(`[CORS] Allowing request without origin`); return callback(null, true); } // Проверяем, есть ли origin в списке разрешенных if (allowedOrigins.includes(origin)) { + console.log(`[CORS] ✓ Allowed origin: ${origin}`); return callback(null, true); } // Логируем отклоненные запросы для отладки - console.warn(`CORS: Blocked origin: ${origin}. Allowed origins: ${allowedOrigins.join(', ')}`); + console.error(`[CORS] ✗ BLOCKED origin: ${origin}`); + console.error(`[CORS] Allowed origins are: ${allowedOrigins.join(', ')}`); return callback(new Error('Not allowed by CORS')); }, credentials: true, @@ -32,6 +42,12 @@ async function bootstrap() { allowedHeaders: ['Content-Type', 'Authorization'], }); + // Добавляем middleware для логирования всех запросов + app.use((req, res, next) => { + console.log(`[${new Date().toISOString()}] ${req.method} ${req.path} - Origin: ${req.headers.origin || 'NO ORIGIN'}`); + next(); + }); + app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true, @@ -40,7 +56,14 @@ async function bootstrap() { const port = configService.get('PORT') || 3000; const host = configService.get('HOST') || '0.0.0.0'; await app.listen(port, host); + console.log(`=== Backend Started Successfully ===`); console.log(`Backend running on http://${host}:${port}`); console.log(`CORS allowed origins: ${allowedOrigins.join(', ')}`); + console.log(`Environment variables:`); + console.log(` - DATABASE_URL: ${configService.get('DATABASE_URL') ? 'SET' : 'NOT SET'}`); + console.log(` - JWT_SECRET: ${configService.get('JWT_SECRET') ? 'SET' : 'NOT SET'}`); + console.log(` - PORT: ${port}`); + console.log(` - HOST: ${host}`); + console.log(` - CORS_ORIGIN: ${corsOrigin}`); } bootstrap();