import { createMiddlewareClient } from "@supabase/auth-helpers-nextjs";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
export async function middleware(req: NextRequest) {
const res = NextResponse.next();
const supabase = createMiddlewareClient({ req, res });
const {
data: { session },
} = await supabase.auth.getSession();
route
if (
req.nextUrl.pathname === "/signin" ||
req.nextUrl.pathname === "/" ||
req.nextUrl.pathname === "/onboarding"
) {
return res;
}
if (session) {
if (session.user.user_metadata.onboarded) {
return res;
} else if (!session.user.user_metadata.onboarded) {
const redirectUrl = req.nextUrl.clone();
redirectUrl.pathname = "/onboarding";
redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
return NextResponse.redirect(redirectUrl);
}
}
const redirectUrl = req.nextUrl.clone();
redirectUrl.pathname = "/signin";
redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
return NextResponse.redirect(redirectUrl);
}
export const config = {
matcher: [
"/((?!api|trpc|_next/static|_next/image|favicon.ico).*)",
],
};
import { createMiddlewareClient } from "@supabase/auth-helpers-nextjs";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
export async function middleware(req: NextRequest) {
const res = NextResponse.next();
const supabase = createMiddlewareClient({ req, res });
const {
data: { session },
} = await supabase.auth.getSession();
route
if (
req.nextUrl.pathname === "/signin" ||
req.nextUrl.pathname === "/" ||
req.nextUrl.pathname === "/onboarding"
) {
return res;
}
if (session) {
if (session.user.user_metadata.onboarded) {
return res;
} else if (!session.user.user_metadata.onboarded) {
const redirectUrl = req.nextUrl.clone();
redirectUrl.pathname = "/onboarding";
redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
return NextResponse.redirect(redirectUrl);
}
}
const redirectUrl = req.nextUrl.clone();
redirectUrl.pathname = "/signin";
redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
return NextResponse.redirect(redirectUrl);
}
export const config = {
matcher: [
"/((?!api|trpc|_next/static|_next/image|favicon.ico).*)",
],
};