import { betterFetch } from "@better-fetch/fetch";
import { NextResponse, type NextRequest } from "next/server";
export default async function middleware(request: NextRequest) {
console.log("Origin url:", request.nextUrl.origin)
const { data: session } = await betterFetch<any>("/api/auth/get-session", {
baseURL: process.env.request.nextUrl.origin,
headers: {
cookie: request.headers.get("cookie") || "",
},
});
if (!session) {
return NextResponse.redirect(
new URL("/auth/login", request.nextUrl.origin),
);
}
if (session.user.role === "admin" && request.nextUrl.pathname === "/") {
return NextResponse.redirect(new URL("/admin", request.nextUrl.origin));
}
if (request.nextUrl.pathname.startsWith("/admin")) {
const isAdmin = session.user?.role === "admin";
if (!isAdmin) {
return NextResponse.redirect(new URL("/", request.nextUrl.origin));
}
}
return NextResponse.next();
}
export const config = {
matcher: [
"/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt|auth/login|auth/register|auth/reset-password|images|impressum|datenschutz|agb).*)",
],
};
//
import { betterFetch } from "@better-fetch/fetch";
import { NextResponse, type NextRequest } from "next/server";
export default async function middleware(request: NextRequest) {
console.log("Origin url:", request.nextUrl.origin)
const { data: session } = await betterFetch<any>("/api/auth/get-session", {
baseURL: process.env.request.nextUrl.origin,
headers: {
cookie: request.headers.get("cookie") || "",
},
});
if (!session) {
return NextResponse.redirect(
new URL("/auth/login", request.nextUrl.origin),
);
}
if (session.user.role === "admin" && request.nextUrl.pathname === "/") {
return NextResponse.redirect(new URL("/admin", request.nextUrl.origin));
}
if (request.nextUrl.pathname.startsWith("/admin")) {
const isAdmin = session.user?.role === "admin";
if (!isAdmin) {
return NextResponse.redirect(new URL("/", request.nextUrl.origin));
}
}
return NextResponse.next();
}
export const config = {
matcher: [
"/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt|auth/login|auth/register|auth/reset-password|images|impressum|datenschutz|agb).*)",
],
};
//