import { auth } from "~/auth" const publicRoutes: string[] = [ // '/', ] const authRoutes = [ // '/auth/signup', '/auth/signin' ] export const apiAuthPrefix = "/auth"; export default auth((req) => { const { nextUrl } = req const isLoggedIn = !!req.auth; const isPublicRoute = publicRoutes.includes(nextUrl.pathname); const isAuthRoute = authRoutes.includes(nextUrl.pathname); const isApiAuthRoute = nextUrl.pathname.startsWith(apiAuthPrefix); if (isApiAuthRoute) { return; } if (isAuthRoute) { if (isLoggedIn) { return Response.redirect(new URL('/', nextUrl)); } return null; } if (!isLoggedIn && !isPublicRoute) { return Response.redirect(new URL("/auth/signin", nextUrl)); } return null }) // Read more: https://nextjs.org/docs/app/building-your-application/routing/middleware#matcher export const config = { matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"], }