import { type NextRequest, NextResponse } from "next/server"; import { createServerClient } from "@supabase/ssr"; export async function proxy(request: NextRequest) { const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY; if (!supabaseUrl || !supabaseKey) return NextResponse.next(); let response = NextResponse.next({ request }); const supabase = createServerClient(supabaseUrl, supabaseKey, { cookies: { getAll: () => request.cookies.getAll(), setAll: (cookiesToSet) => { for (const { name, value } of cookiesToSet) { request.cookies.set(name, value); } response = NextResponse.next({ request }); for (const { name, value, options } of cookiesToSet) { response.cookies.set(name, value, options); } }, }, }); // Must await: getUser() triggers the token refresh, and the refreshed // cookies are written to `response` via the setAll callback above. Returning // before it resolves can drop the refreshed session cookie. await supabase.auth.getUser(); return response; }