Next.js Discord

Discord Forum

I need help with Middleware

Unanswered
Common paper wasp posted this in #help-forum
Open in Discord
Common paper waspOP
I'm trying to use middleware to create private routes but it seems like my middleware never gets called. I'm using AppRouter

import { NextRequest, NextResponse } from "next/server"
import { tokenKey } from "./src/app/services/myApi"

export function middleware(req: NextRequest) {
    const token = req.cookies.get(tokenKey)?.value;
    const signinUrl = new URL("/signin", req.url);
    const homeUrl = new URL("/", req.url);

    if (token) {
        if (req.nextUrl.pathname == "/") {
            return NextResponse.next();
        }
        return NextResponse.redirect(homeUrl);
    } else {
        if (req.nextUrl.pathname == "/signin") {
            return NextResponse.next();
        }
        return NextResponse.redirect(signinUrl);
    }
}

export const config = {
    matcher: ["/", "/signin/:path*", "/signup/:path*"]
}

1 Reply

The middleware has to be located next to your app folder example:

src/
app/
middleware.ts