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