UNPKG

nuxt-supabase-team-auth

Version:

Drop-in Nuxt 3 module for team-based authentication with Supabase

56 lines (55 loc) 1.89 kB
import { defineEventHandler, readBody, getHeader, createError } from "h3"; import { $fetch } from "ofetch"; import { useRuntimeConfig } from "#imports"; export default defineEventHandler(async (event) => { console.log("=== INVITE MEMBER API CALLED ==="); console.log("Method:", event.node.req.method); console.log("URL:", event.node.req.url); const body = await readBody(event); console.log("Request body received:", body); const authHeader = getHeader(event, "authorization"); console.log("Auth header present:", !!authHeader); if (!authHeader) { console.log("Missing auth header, rejecting request"); throw createError({ statusCode: 401, statusMessage: "Missing authorization header" }); } const supabaseUrl = useRuntimeConfig().supabaseUrl; const edgeFunctionUrl = `${supabaseUrl}/functions/v1/invite-member`; console.log("Proxying to edge function:", edgeFunctionUrl); console.log("Request body:", body); try { const response = await $fetch(edgeFunctionUrl, { method: "POST", headers: { "Authorization": authHeader, "Content-Type": "application/json" }, body }); console.log("Edge function response:", response); return response; } catch (error) { console.error("Invite member proxy error:", error); console.error("Error details:", { status: error.status, statusCode: error.statusCode, data: error.data, message: error.message }); let errorMessage = "Failed to invite member"; if (error.data?.error) { errorMessage = error.data.error; } else if (error.data?.message) { errorMessage = error.data.message; } else if (error.message) { errorMessage = error.message; } throw createError({ statusCode: error.status || error.statusCode || 500, statusMessage: errorMessage }); } });