Files
SanatiLeads/middleware.ts

32 lines
1.0 KiB
TypeScript

import {
convexAuthNextjsMiddleware,
createRouteMatcher,
isAuthenticatedNextjs,
nextjsMiddlewareRedirect,
} from "@convex-dev/auth/nextjs/server";
import { NextResponse } from "next/server";
const isSignInPage = createRouteMatcher(["/auth"]);
const isProtectedPage = createRouteMatcher([
"/dashboard(.*)",
"/onboarding(.*)",
"/opportunities(.*)",
]);
export default convexAuthNextjsMiddleware(async (request) => {
if (isSignInPage(request) && (await isAuthenticatedNextjs())) {
return nextjsMiddlewareRedirect(request, "/dashboard");
}
if (isProtectedPage(request) && !(await isAuthenticatedNextjs())) {
const nextUrl = new URL("/auth", request.url);
nextUrl.searchParams.set("next", request.nextUrl.pathname + request.nextUrl.search);
return NextResponse.redirect(nextUrl);
}
});
export const config = {
// The following matcher runs middleware on all routes
// except static assets.
matcher: ["/((?!.*\\..*|_next).*)", "/", "/(api|trpc)(.*)"],
};