diff --git a/src/lib/supabase/middleware.ts b/src/lib/supabase/middleware.ts new file mode 100644 index 0000000..5fb7f76 --- /dev/null +++ b/src/lib/supabase/middleware.ts @@ -0,0 +1,37 @@ +import { createServerClient } from '@supabase/ssr'; +import { NextRequest, NextResponse } from 'next/server'; + +export async function createClient(request: NextRequest) { + let response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + getAll() { + return request.cookies.getAll(); + }, + setAll(cookiesToSet) { + cookiesToSet.forEach(({ name, value, options }) => + request.cookies.set(name, value) + ); + response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + cookiesToSet.forEach(({ name, value, options }) => + response.cookies.set(name, value, options) + ); + }, + }, + } + ); + + return { supabase, response }; +}