UNPKG

nuxt-supabase-team-auth

Version:

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

41 lines (40 loc) 1.23 kB
import { defineEventHandler, readBody, createError } from "h3"; import { serverSupabaseClient } from "#supabase/server"; export default defineEventHandler(async (event) => { try { const supabase = await serverSupabaseClient(event); const body = await readBody(event); const { accessToken, refreshToken } = body; if (!accessToken || !refreshToken) { throw createError({ statusCode: 400, statusMessage: "Access Token and Refresh Token are required" }); } const { data, error } = await supabase.auth.setSession({ access_token: accessToken, refresh_token: refreshToken }); if (error) { throw createError({ statusCode: error.status || 500, statusMessage: error.message || "Failed to set session" }); } return { success: true, message: "Session synchronized and cookie set successfully", userId: data?.session?.user?.id, userEmail: data?.session?.user?.email }; } catch (error) { const errorObj = error; if (errorObj.statusCode) { throw error; } throw createError({ statusCode: 500, statusMessage: errorObj.message || "Failed to sync session" }); } });