purcar-chat-api / src /lib /serverSupabase.ts
ihatebaselines's picture
Deploy Purcar gateway and local model engine
7e92e00 verified
Raw History Blame Contribute Delete
857 Bytes
import { createClient } from "@supabase/supabase-js";
const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
const anonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
export function getBearerToken(request: Request): string | null {
const value = request.headers.get("authorization") || "";
return value.toLowerCase().startsWith("bearer ") ? value.slice(7).trim() : null;
}
export async function createAuthenticatedClient(request: Request) {
const token = getBearerToken(request);
if (!url || !anonKey || !token) return null;
const client = createClient(url, anonKey, {
auth: { persistSession: false, autoRefreshToken: false },
global: { headers: { Authorization: `Bearer ${token}` } },
});
const { data, error } = await client.auth.getUser(token);
if (error || !data.user) return null;
return { client, user: data.user, token };
}