UNPKG

nuxt-supabase-team-auth

Version:

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

50 lines (42 loc) 1.38 kB
import { defineEventHandler, readBody, createError } from 'h3' import { $fetch } from 'ofetch' import { useRuntimeConfig } from '#imports' export default defineEventHandler(async (event) => { const body = await readBody(event) // Get runtime config for Supabase const config = useRuntimeConfig() const supabaseUrl = config.public.supabase.url const serviceKey = config.supabaseServiceKey if (!serviceKey) { throw createError({ statusCode: 500, statusMessage: 'Missing Supabase service key configuration', }) } // Transform body to match Edge Function expectations const transformedBody = { email: body.email, password: body.password, team_name: body.teamName, // Convert camelCase to snake_case } // Forward to Supabase Edge Function with service role key const edgeFunctionUrl = `${supabaseUrl}/functions/v1/create-team-and-owner` try { const response = await $fetch(edgeFunctionUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${serviceKey}`, }, body: transformedBody, }) return response } catch (error: any) { console.error('Signup with team proxy error:', error) throw createError({ statusCode: error.status || 500, statusMessage: error.message || 'Failed to signup with team', }) } })