tebyan-medical-backend / frontend /lib /supabase-server.ts
رغد
feat: complete platform — auth, deployment, hardening
344e369
raw
history blame
982 Bytes
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
}
}