import { createRouteHandlerClient } from "@supabase/auth-helpers-nextjs"; import { NextResponse } from "next/server"; import { cookies } from "next/headers"; import { env } from "@/lib/env"; import type { Database } from "@/lib/types"; export async function GET(request: Request) { const requestUrl = new URL(request.url); const code = requestUrl.searchParams.get("code"); const nextParam = requestUrl.searchParams.get("next"); const next = nextParam && nextParam.startsWith("/") && !nextParam.startsWith("//") ? nextParam : "/dashboard"; const redirectOrigin = env.appOrigin || requestUrl.origin; if (code) { const supabase = createRouteHandlerClient({ cookies }); const { error } = await supabase.auth.exchangeCodeForSession(code); if (error) { console.error(error); return NextResponse.redirect( new URL(`/login?authError=1`, redirectOrigin), ); } const { data: { user }, } = await supabase.auth.getUser(); if (!user) { return NextResponse.redirect(new URL(`/login?noUser=1`, redirectOrigin)); } } return NextResponse.redirect(new URL(next, redirectOrigin)); }