diff options
Diffstat (limited to 'packages/web/src')
| -rw-r--r-- | packages/web/src/app/api/auth/callback/route.ts | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/packages/web/src/app/api/auth/callback/route.ts b/packages/web/src/app/api/auth/callback/route.ts index 3d02db4..d049832 100644 --- a/packages/web/src/app/api/auth/callback/route.ts +++ b/packages/web/src/app/api/auth/callback/route.ts @@ -1,16 +1,33 @@ -import { NextResponse } from "next/server"; -import { createClient } from "~/lib/supabase/server"; +import { createServerClient } from "@supabase/ssr"; +import { type NextRequest, NextResponse } from "next/server"; +import { env } from "~/env"; -export async function GET(request: Request) { +export async function GET(request: NextRequest) { const requestUrl = new URL(request.url); const code = requestUrl.searchParams.get("code"); const origin = requestUrl.origin; + const response = NextResponse.redirect(`${origin}/`); if (code) { - const supabase = await createClient(); + const supabase = createServerClient( + env.NEXT_PUBLIC_SUPABASE_URL, + env.NEXT_PUBLIC_SUPABASE_ANON_KEY, + { + cookies: { + getAll() { + return request.cookies.getAll(); + }, + setAll(cookiesToSet) { + for (const { name, value, options } of cookiesToSet) { + response.cookies.set(name, value, options); + } + }, + }, + }, + ); await supabase.auth.exchangeCodeForSession(code); } - return NextResponse.redirect(`${origin}/`); + return response; } |