Fix jwt-token
This commit is contained in:
@@ -21,7 +21,8 @@ const { apiDebugMiddleware } = require('./utils/apiDebugLogger');
|
|||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
// Trust proxy headers for getting real client IPs behind nginx
|
// Trust proxy headers for getting real client IPs behind nginx
|
||||||
app.set('trust proxy', true);
|
// Trust only the first proxy (nginx) for security
|
||||||
|
app.set('trust proxy', 1);
|
||||||
|
|
||||||
const server = createServer(app);
|
const server = createServer(app);
|
||||||
const io = new Server(server, {
|
const io = new Server(server, {
|
||||||
@@ -40,10 +41,19 @@ const limiter = rateLimit({
|
|||||||
windowMs: parseInt(process.env.RATE_LIMIT_WINDOW_MS) || 15 * 60 * 1000, // 15 minutes
|
windowMs: parseInt(process.env.RATE_LIMIT_WINDOW_MS) || 15 * 60 * 1000, // 15 minutes
|
||||||
max: parseInt(process.env.RATE_LIMIT_MAX_REQUESTS) || 1000, // Increased from 100 to 1000
|
max: parseInt(process.env.RATE_LIMIT_MAX_REQUESTS) || 1000, // Increased from 100 to 1000
|
||||||
message: 'Too many requests from this IP, please try again later.',
|
message: 'Too many requests from this IP, please try again later.',
|
||||||
|
// Custom key generator to handle proxy headers properly
|
||||||
|
keyGenerator: (req) => {
|
||||||
|
// Get the real IP from proxy headers, with fallback
|
||||||
|
return req.ip || req.connection.remoteAddress || 'unknown';
|
||||||
|
},
|
||||||
skip: (req) => {
|
skip: (req) => {
|
||||||
// Skip rate limiting for drone detection endpoints during testing
|
// Skip rate limiting for drone detection endpoints during testing
|
||||||
return req.path.includes('/detections') || req.path.includes('/detectors');
|
return req.path.includes('/detections') || req.path.includes('/detectors');
|
||||||
}
|
},
|
||||||
|
// Skip failed requests (don't count them against the limit)
|
||||||
|
skipFailedRequests: true,
|
||||||
|
// Skip successful requests (only count errors/abuse)
|
||||||
|
skipSuccessfulRequests: false
|
||||||
});
|
});
|
||||||
|
|
||||||
// Middleware
|
// Middleware
|
||||||
|
|||||||
Reference in New Issue
Block a user