Spaces:
Sleeping
Sleeping
File size: 857 Bytes
7e92e00 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 };
}
|