fix: use custom fetch wrapper in supabase ssr to route traffic internally and avoid fetch failed edge errors

This commit is contained in:
Marcos Fargas
2026-10-04 20:43:30 +02:00
parent 4bf3ecb744
commit 38bb161531
2 changed files with 32 additions and 0 deletions

View File

@@ -7,6 +7,22 @@ export async function createClient() {
process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
{ {
global: {
fetch: (url, options) => {
const u = new URL(url.toString());
if (process.env.NODE_ENV === 'production' && u.hostname === 'supabase.4ventures.es') {
u.protocol = 'http:';
u.hostname = 'ventures-web-supabase-gm0nnn-supabase-kong';
u.port = '8000';
if (!options) options = {};
if (!options.headers) options.headers = new Headers();
const headers = new Headers(options.headers);
headers.set('Host', 'supabase.4ventures.es');
options.headers = headers;
}
return fetch(u.toString(), options);
}
},
cookies: { cookies: {
getAll() { getAll() {
return cookieStore.getAll(); return cookieStore.getAll();

View File

@@ -28,6 +28,22 @@ export async function middleware(req: NextRequest) {
process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
{ {
global: {
fetch: (url, options) => {
const u = new URL(url.toString());
if (process.env.NODE_ENV === 'production' && u.hostname === 'supabase.4ventures.es') {
u.protocol = 'http:';
u.hostname = 'ventures-web-supabase-gm0nnn-supabase-kong';
u.port = '8000';
if (!options) options = {};
if (!options.headers) options.headers = new Headers();
const headers = new Headers(options.headers);
headers.set('Host', 'supabase.4ventures.es');
options.headers = headers;
}
return fetch(u.toString(), options);
}
},
cookies: { cookies: {
getAll() { getAll() {
return req.cookies.getAll(); return req.cookies.getAll();