From dcf55f4d0829b7ba80fb39a42bcbdd77ef171e5f Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 20 Mar 2026 17:09:10 +0700 Subject: [PATCH] 260320:1709 Refactor Overrall #10 Fix by antigravity: pnpm frontend deploy --- frontend/lib/auth.ts | 33 +++++++++++++++---- .../docker-compose-app.yml | 1 + 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/frontend/lib/auth.ts b/frontend/lib/auth.ts index d0efdde..fd72b46 100644 --- a/frontend/lib/auth.ts +++ b/frontend/lib/auth.ts @@ -70,28 +70,46 @@ export const { password: { label: "Password", type: "password" }, }, authorize: async (credentials) => { - try { - const { username, password } = await loginSchema.parseAsync(credentials); + if (!credentials?.username || !credentials?.password) return null; + try { + // 1. Sanitize payload (Only send username and password) + const payload = { + username: credentials.username as string, + password: credentials.password as string, + }; + + console.log(`[AUTH] Attempting login at: ${baseUrl}/auth/login`); + console.log(`[AUTH] Current process.env.INTERNAL_API_URL: ${process.env.INTERNAL_API_URL}`); + console.log(`[AUTH] Current process.env.NEXT_PUBLIC_API_URL: ${process.env.NEXT_PUBLIC_API_URL}`); const res = await fetch(`${baseUrl}/auth/login`, { method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ username, password }), + body: JSON.stringify(payload), + headers: { + "Content-Type": "application/json", + }, + cache: 'no-store', // Disable caching for auth requests }); if (!res.ok) { - const errorMsg = await res.text(); + console.error(`[AUTH] Login Failed: status ${res.status}`); + const errorBody = await res.text().catch(() => "No error body"); + console.error(`[AUTH] Error details: ${errorBody}`); return null; } - const responseJson = await res.json(); - const backendData = responseJson.data || responseJson; + const data = await res.json(); + // Handling both { data: { ... } } and direct { ... } response formats + const backendData = data.data || data; if (!backendData || !backendData.access_token) { + console.error("[AUTH] Login failed: Invalid response format from backend (missing access_token)"); return null; } + console.log(`[AUTH] Login Successful for user: ${backendData.user?.username || 'unknown'}`); + return { id: backendData.user.user_id.toString(), name: `${backendData.user.firstName} ${backendData.user.lastName}`, @@ -104,6 +122,7 @@ export const { } as User; } catch (error) { + console.error("[AUTH] Network/Fetch Error during authorize:", error); return null; } }, diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/docker-compose-app.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/docker-compose-app.yml index 9d3a75f..e951b9c 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/docker-compose-app.yml +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/docker-compose-app.yml @@ -74,6 +74,7 @@ services: # --- File Upload --- UPLOAD_TEMP_DIR: '/app/uploads/temp' UPLOAD_PERMANENT_DIR: '/app/uploads/permanent' + PORT: '3000' MAX_FILE_SIZE: '52428800' networks: - lcbp3