diff --git a/backend/src/routes/me.ts b/backend/src/routes/me.ts index 3093331..a8f8d83 100644 --- a/backend/src/routes/me.ts +++ b/backend/src/routes/me.ts @@ -4,29 +4,48 @@ import { query } from "../db"; export const meRouter = Router(); meRouter.get("/", async (req, res) => { + console.log("\n--- [ME] Request received for /me ---"); + + // 1. Loggen wir die rohen Cookie-Header, wie sie von NGINX ankommen + console.log("[ME] Raw cookie header:", req.headers.cookie); + + // 2. Loggen wir das von cookie-parser geparste Objekt + console.log("[ME] Parsed cookies object:", req.cookies); + + // 3. Loggen wir die komplette Session, wie sie von express-session gefunden wird + console.log("[ME] Session object found by middleware:", req.session); + // @ts-ignore - const userId = req.session.userId as number | undefined; + const userId = req.session?.userId as number | undefined; + console.log(`[ME] Extracted userId from session: ${userId}`); if (!userId) { + console.log("[ME] No userId found in session. Responding with 401 Unauthorized."); return res.status(401).json({ error: "Not logged in" }); } - const [user] = await query( - ` - SELECT u.id, u.discord_id, u.discord_name, u.avatar_url, u.created_at, - w.balance, w.last_claim_at - FROM users u - LEFT JOIN wallets w ON w.user_id = u.id - WHERE u.id = $1; - `, - [userId] - ); + try { + console.log(`[ME] Querying database for user with ID: ${userId}`); + const [user] = await query( + ` + SELECT u.id, u.discord_id, u.discord_name, u.avatar_url, + w.balance, w.last_claim_at + FROM users u + LEFT JOIN wallets w ON w.user_id = u.id + WHERE u.id = $1; + `, + [userId] + ); - if (!user) { - // @ts-ignore - req.session.destroy(); - return res.status(401).json({ error: "User not found, session cleared" }); + if (user) { + console.log(`[ME] Found user: ${user.discord_name}. Responding with user data.`); + res.json(user); + } else { + console.log(`[ME] User with ID ${userId} not found in database! Responding with 404.`); + res.status(404).json({ error: "User not found" }); + } + } catch (err) { + console.error("[ME] Error during database query:", err); + res.status(500).json({ error: "Failed to fetch user data" }); } - - res.json(user); }); \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index d5f3af6..dbfb9a7 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -269,11 +269,20 @@ const App: React.FC = () => { try { setState((prev) => ({ ...prev, loading: true, error: null })); + // --- HINZUGEFÜGT: Loggen, was der Browser weiß --- + console.log("[FRONTEND] Starting loadAll. Current browser cookies:", document.cookie); + const [meRes, walletRes] = await Promise.all([ - getMe().catch(() => null), + getMe().catch((err) => { + // --- HINZUGEFÜGT: Fehler beim /me-Aufruf loggen --- + console.error("[FRONTEND] API call to getMe() failed:", err); + return null; + }), getWallet().catch(() => null), ]); + console.log("[FRONTEND] API calls finished. User data received:", meRes); + setState((prev) => ({ ...prev, me: meRes,