From 097c2810517bf0ada35eb678b7be72847fa64ec5 Mon Sep 17 00:00:00 2001 From: Chamika J <75464293+chamikaJ@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:40:11 +0530 Subject: [PATCH] feat(auth): enhance session middleware logging and error handling - Added detailed debug logging to the session middleware for improved visibility into request processing, including URL, method, and header information. - Updated error handling to log session middleware errors and session ID status after processing. - Ensured compatibility with mobile applications by refining cookie handling based on header values. --- .../src/middlewares/session-middleware.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/worklenz-backend/src/middlewares/session-middleware.ts b/worklenz-backend/src/middlewares/session-middleware.ts index 4854cbaa..2eee63ff 100644 --- a/worklenz-backend/src/middlewares/session-middleware.ts +++ b/worklenz-backend/src/middlewares/session-middleware.ts @@ -42,8 +42,15 @@ export default (req: any, res: any, next: any) => { const headerSessionId = req.headers["x-session-id"]; const headerSessionName = req.headers["x-session-name"]; + console.log("DEBUG - Session middleware:"); + console.log("- URL:", req.url); + console.log("- Method:", req.method); + console.log("- Has headers:", !!headerSessionId); + console.log("- Original cookie:", req.headers.cookie); + // Only process headers if they exist AND there's no existing valid session cookie if (headerSessionId && headerSessionName) { + console.log("Processing mobile headers"); const secret = process.env.SESSION_SECRET || "development-secret-key"; try { @@ -63,13 +70,24 @@ export default (req: any, res: any, next: any) => { // Set the session cookie from header req.headers.cookie = sessionCookie; } + console.log("Updated cookie:", req.headers.cookie); } catch (error) { + console.log("Error processing headers:", error); // Fallback to the old method const sessionCookie = `${headerSessionName}=s%3A${headerSessionId}`; req.headers.cookie = sessionCookie; } + } else { + console.log("Using normal cookie processing"); } // Always call the original session middleware (handles both cookie and header-converted cases) - sessionMiddleware(req, res, next); + sessionMiddleware(req, res, (err: any) => { + if (err) { + console.log("Session middleware error:", err); + } + console.log("After session middleware - Session ID:", (req as any).sessionID); + console.log("After session middleware - Authenticated:", !!(req as any).isAuthenticated && (req as any).isAuthenticated()); + next(err); + }); }; \ No newline at end of file