Files
gregorlohaus.com/src/proxy.ts
2026-04-24 12:41:27 +02:00

26 lines
791 B
TypeScript

import { clerkMiddleware, createRouteMatcher } from "@clerk/nextjs/server";
import { NextResponse } from "next/server";
import { env } from "~/env";
const isTenantAdminRoute = createRouteMatcher(["/admin(.*)"]);
export default clerkMiddleware(async (auth, req) => {
if (isTenantAdminRoute(req)) {
await auth.protect();
const { userId } = await auth();
if (userId !== env.ADMIN_USER_CLERK_ID) {
return NextResponse.redirect(new URL("/", req.url));
}
}
});
export const config = {
matcher: [
// Skip Next.js internals and all static files, unless found in search params
'/((?!_next|[^?]*\\.(?:html?|css|js(?!on)|jpe?g|webp|png|gif|svg|ttf|woff2?|ico|csv|docx?|xlsx?|zip|webmanifest)).*)',
// Always run for API routes
'/(api|trpc)(.*)',
],
};