From c82cc322786c672bbeeb66f7df563646f619f1ff Mon Sep 17 00:00:00 2001 From: 4Ventures <4ventures@MacBook-Air-de-4Ventures.local> Date: Mon, 5 Oct 2026 16:36:51 +0200 Subject: [PATCH] fix: add temporary /api/debug/session to diagnose auth cookies Co-authored-by: Cursor --- src/app/api/debug/session/route.ts | 57 ++++++++++++++++++++++++++++++ src/middleware.ts | 1 + 2 files changed, 58 insertions(+) create mode 100644 src/app/api/debug/session/route.ts diff --git a/src/app/api/debug/session/route.ts b/src/app/api/debug/session/route.ts new file mode 100644 index 0000000..38bbc03 --- /dev/null +++ b/src/app/api/debug/session/route.ts @@ -0,0 +1,57 @@ +import { NextRequest, NextResponse } from 'next/server'; +import { createServerClient } from '@supabase/ssr'; + +/** Temporary login diagnostics — remove after auth is stable. */ +export async function GET(req: NextRequest) { + const cookieSummary = req.cookies.getAll().map((c) => ({ + name: c.name, + len: c.value.length, + prefix: c.value.slice(0, 24), + })); + + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + getAll() { + return req.cookies.getAll(); + }, + setAll() {}, + }, + } + ); + + const sessionRes = await supabase.auth.getSession(); + let userRes: Awaited> | null = null; + let userErr: string | null = null; + try { + userRes = await supabase.auth.getUser(); + } catch (e: unknown) { + userErr = e instanceof Error ? e.message : String(e); + } + + return NextResponse.json({ + ts: new Date().toISOString(), + commitHint: 'getSession-middleware', + cookies: cookieSummary, + session: { + hasSession: Boolean(sessionRes.data.session), + email: sessionRes.data.session?.user?.email ?? null, + role: + sessionRes.data.session?.user?.app_metadata?.role || + sessionRes.data.session?.user?.user_metadata?.role || + null, + error: sessionRes.error?.message ?? null, + }, + user: { + hasUser: Boolean(userRes?.data?.user), + email: userRes?.data?.user?.email ?? null, + role: + userRes?.data?.user?.app_metadata?.role || + userRes?.data?.user?.user_metadata?.role || + null, + error: userRes?.error?.message ?? userErr, + }, + }); +} diff --git a/src/middleware.ts b/src/middleware.ts index 1d4c8d5..ea7a7d6 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -63,6 +63,7 @@ export async function middleware(req: NextRequest) { const isPublic = path === '/login' || path === '/api/health' || + path === '/api/debug/session' || path.startsWith('/api/webhooks/') || path.startsWith('/api/cron/') || path === '/_4v_attr.js' ||