import { createServerComponentClient, createRouteHandlerClient } from "@supabase/auth-helpers-nextjs"; import { getDecodedCookies } from "@/lib/server-cookies"; export const createSupabaseServerClient = async () => { const cookieStore = await getDecodedCookies(); const supabaseUrl = process.env.SUPABASE_INTERNAL_URL ?? process.env.NEXT_PUBLIC_SUPABASE_URL; const supabaseAnonKey = process.env.SUPABASE_ANON_KEY ?? process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; if (!supabaseUrl || !supabaseAnonKey) { throw new Error( "缺少 Supabase 环境变量,请配置 NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY(可选:SUPABASE_INTERNAL_URL / SUPABASE_ANON_KEY 作为服务端内网地址)", ); } return createServerComponentClient({ cookies: () => cookieStore as any, supabaseUrl, supabaseKey: supabaseAnonKey, } as any); }; export const createSupabaseRouteClient = async () => { const cookieStore = await getDecodedCookies(); const supabaseUrl = process.env.SUPABASE_INTERNAL_URL ?? process.env.NEXT_PUBLIC_SUPABASE_URL; const supabaseAnonKey = process.env.SUPABASE_ANON_KEY ?? process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; if (!supabaseUrl || !supabaseAnonKey) { throw new Error( "缺少 Supabase 环境变量,请配置 NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY(可选:SUPABASE_INTERNAL_URL / SUPABASE_ANON_KEY 作为服务端内网地址)", ); } return createRouteHandlerClient({ cookies: () => cookieStore as any, supabaseUrl, supabaseKey: supabaseAnonKey, } as any); };