App Router Auth Callback
This is the route.ts for /app/auth/callback/route.ts This uses the modern SSR package from Supabase.unknown
typescript
2 years ago
1.4 kB
31
Indexable
import { type CookieOptions, createServerClient } from "@supabase/ssr";
import { cookies } from "next/headers";
import { NextResponse } from "next/server";
import { baseUrl } from "@/app/utils/BaseURL";
export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
console.log("searchParams", searchParams);
const code = searchParams.get("code");
const next = searchParams.get("next") ?? `${baseUrl}/dashboard`;
console.log(`WE RECEIVED CODE: ${code} and are now redirecting to ${next}`);
if (code) {
const cookieStore = cookies();
const supabase = createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
{
cookies: {
get(name: string) {
return cookieStore.get(name)?.value;
},
set(name: string, value: string, options: CookieOptions) {
cookieStore.set({ name, value, ...options });
},
remove(name: string, options: CookieOptions) {
cookieStore.delete({ name, ...options });
},
},
}
);
const { error } = await supabase.auth.exchangeCodeForSession(code);
if (!error) {
return NextResponse.redirect(next);
}
}
// return the user to an error page with instructions
return NextResponse.error();
}
Editor is loading...
Leave a Comment