Next.js Multi Tenant
Unanswered
American Fuzzy Lop posted this in #help-forum
American Fuzzy LopOP
I need help with my next.js supabase project.
The session from main domain is not persisted into subdomains.
here is middleware.ts
The session from main domain is not persisted into subdomains.
here is middleware.ts
import { createServerClient } from "@supabase/ssr";
import { NextResponse, type NextRequest } from "next/server";
import { env } from "../env.mjs";
export async function updateSession(request: NextRequest) {
let supabaseResponse = NextResponse.next({
request,
});
const supabase = createServerClient(
env.NEXT_PUBLIC_SUPABASE_URL,
env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
{
cookieOptions: {
domain: ".localhost",
maxAge: 100000000,
path: "/",
sameSite: "lax",
httpOnly: true,
},
cookies: {
getAll() {
return request.cookies.getAll();
},
setAll(cookiesToSet) {
cookiesToSet.forEach(({ name, value }) =>
request.cookies.set(name, value),
);
supabaseResponse = NextResponse.next({
request,
});
cookiesToSet.forEach(({ name, value, options }) =>
supabaseResponse.cookies.set(name, value, {
...options,
domain: ".localhost",
path: "/",
secure: false,
httpOnly: true,
}),
);
},
},
},
);
const {
data: { user },
} = await supabase.auth.getUser();
if (
!user &&
!request.nextUrl.pathname.startsWith("/login") &&
!request.nextUrl.pathname.startsWith("/auth")
) {
const url = request.nextUrl.clone();
url.pathname = "/login";
return NextResponse.redirect(url);
}
return supabaseResponse;
}