diff --git a/src/app/auth/callback/route.ts b/src/app/auth/callback/route.ts new file mode 100644 index 0000000..451854e --- /dev/null +++ b/src/app/auth/callback/route.ts @@ -0,0 +1,24 @@ +import { createSupabaseClient } from "@/lib/supabase/serverComponentClient"; +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + const { searchParams, origin } = new URL(request.url); + + const code = searchParams.get("code"); + + // if "next" is in param, use it in the redirect URL + const next = searchParams.get("next") ?? "/"; + + if (code) { + const supabase = createSupabaseClient(); + + const { error } = await supabase.auth.exchangeCodeForSession(code); + + if (!error) { + return NextResponse.redirect(`${origin}${next}`); + } + } + + // return the user to an error page with instructions + return NextResponse.redirect(`${origin}/auth/error`); +} diff --git a/src/app/auth/error/page.tsx b/src/app/auth/error/page.tsx new file mode 100644 index 0000000..7552b02 --- /dev/null +++ b/src/app/auth/error/page.tsx @@ -0,0 +1,3 @@ +export default function AuthError() { + return
Continue With
- - +