diff options
Diffstat (limited to 'apps/web/lib/supabase/middleware.ts')
| -rw-r--r-- | apps/web/lib/supabase/middleware.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/web/lib/supabase/middleware.ts b/apps/web/lib/supabase/middleware.ts new file mode 100644 index 0000000..038e7c0 --- /dev/null +++ b/apps/web/lib/supabase/middleware.ts @@ -0,0 +1,39 @@ +import { createServerClient } from "@supabase/ssr" +import { NextResponse, type NextRequest } from "next/server" + +export async function updateSupabaseSession(request: NextRequest) { + let supabaseResponse = NextResponse.next({ + request, + }) + + const supabaseClient = 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 }) => + request.cookies.set(name, value) + ) + + supabaseResponse = NextResponse.next({ + request, + }) + + cookiesToSet.forEach(({ name, value, options }) => + supabaseResponse.cookies.set(name, value, options) + ) + }, + }, + } + ) + + const { + data: { user }, + } = await supabaseClient.auth.getUser() + + return { user, supabaseResponse } +} |