diff --git a/app/api/git/[...path]/route.ts b/app/api/git/[...path]/route.ts index 6160a98..ad2c25a 100644 --- a/app/api/git/[...path]/route.ts +++ b/app/api/git/[...path]/route.ts @@ -37,7 +37,10 @@ async function verifyPassword(password: string, hash: string): Promise } async function authenticateUser(authHeader: string | null): Promise<{ id: string; username: string } | null> { + console.log("[Git Auth] Starting authentication"); + if (!authHeader || !authHeader.startsWith("Basic ")) { + console.log("[Git Auth] No auth header or not Basic auth"); return null; } @@ -45,7 +48,10 @@ async function authenticateUser(authHeader: string | null): Promise<{ id: string const credentials = Buffer.from(base64Credentials, "base64").toString("utf-8"); const [email, password] = credentials.split(":"); + console.log("[Git Auth] Email:", email); + if (!email || !password) { + console.log("[Git Auth] Missing email or password"); return null; } @@ -54,26 +60,34 @@ async function authenticateUser(authHeader: string | null): Promise<{ id: string where: eq(users.email, email), }); + console.log("[Git Auth] User found:", !!user); + if (!user) { return null; } const account = await db.query.accounts.findFirst({ - where: and(eq(accounts.userId, user.id), eq(accounts.providerId, "credential")), + where: eq(accounts.userId, user.id), }); + console.log("[Git Auth] Account found:", !!account, "providerId:", account?.providerId, "hasPassword:", !!account?.password); + if (!account?.password) { return null; } + console.log("[Git Auth] Password hash format:", account.password.substring(0, 20) + "..."); + const valid = await verifyPassword(password, account.password); + console.log("[Git Auth] Password valid:", valid); + if (!valid) { return null; } return { id: user.id, username: user.username }; } catch (err) { - console.error("Auth error:", err); + console.error("[Git Auth] Error:", err); return null; } }