This commit is contained in:
Dmitry 2026-01-05 01:15:14 +03:00
parent 178a2ba23b
commit 44b0e1e73a

View file

@ -11,20 +11,30 @@ async function bootstrap() {
const corsOrigin = configService.get<string>('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<string>('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<number>('PORT') || 3000;
const host = configService.get<string>('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<string>('DATABASE_URL') ? 'SET' : 'NOT SET'}`);
console.log(` - JWT_SECRET: ${configService.get<string>('JWT_SECRET') ? 'SET' : 'NOT SET'}`);
console.log(` - PORT: ${port}`);
console.log(` - HOST: ${host}`);
console.log(` - CORS_ORIGIN: ${corsOrigin}`);
}
bootstrap();