//intercept all call comming to Api route. app.all('/api/*', function(req, res, next) { console.log('intercepting call to api route.' + '\r\n StartTime:' + req._startTime + '\r\n Method:' + req.method + '\r\n url:' + req.url + '\r\n body:' + JSON.stringify(req.body)); global.Api_TotalRequestsReceived += 1; next(); }, function(req, res, next) { return authenticator(req, res, next); }, router);
/* * /stats */ app.get("/stats", function(req, res) { console.log("_startTime: "+req._startTime); console.log("req.query.api_key = "+req.query.api_key); console.log("req.session.api_key = "+req.session.api_key); if (req.query.api_key) { req.session.api_key = req.query.api_key; var cookies = new Cookies(req, res); if (cookieSessionKey.length < 1) { cookieSessionKey = extra.calcMD5("" + (Math.random() * 7919)); } console.log("created session_key cookie for client: "+cookieSessionKey); cookies.set("session_key", cookieSessionKey, {overwrite: true, httpOnly: false}); console.log("check cookie for session_key: "+cookies.get("session_key")); } else if (!req.session.api_key) { handleError(res, "/stats Unauthorized", "stats: session is invalid (no session key), please restart from Dashboard", 401); return; } else if (req.session.api_key.localeCompare(process.env.BOT_API_KEY) != 0) { handleError(res, "/stats Unauthorized", "stats: session is invalid (out of date session key), please restart from Dashboard", 401); return; } console.log("req.session.api_key = "+req.session.api_key); execStats(req, res); });