I need help with Middleware
Unanswered
Common paper wasp posted this in #help-forum
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
src/
app/
middleware.ts