Spaces:
Running
Running
| import { createServerClient } from "@supabase/ssr" | |
| import { cookies } from "next/headers" | |
| export async function createServerSupabaseClient() { | |
| const cookieStore = await cookies() | |
| return createServerClient( | |
| process.env.NEXT_PUBLIC_SUPABASE_URL!, | |
| process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, | |
| { | |
| cookies: { | |
| getAll() { | |
| return cookieStore.getAll() | |
| }, | |
| setAll(cookiesToSet) { | |
| try { | |
| cookiesToSet.forEach(({ name, value, options }) => | |
| cookieStore.set(name, value, options) | |
| ) | |
| } catch { | |
| // Server components can't set cookies — middleware handles session refresh | |
| } | |
| }, | |
| }, | |
| } | |
| ) | |
| } | |
| export async function getServerUser() { | |
| try { | |
| const supabase = await createServerSupabaseClient() | |
| const { data: { user }, error } = await supabase.auth.getUser() | |
| if (error || !user) return null | |
| return user | |
| } catch { | |
| return null | |
| } | |
| } | |