// middleware.ts
import { NextResponse } from 'next/server';
import { getToken } from 'next-auth/jwt';
const PROTECT_ROUTE_WITHOUT_AUTH = ['/private-route'];
const PROTECT_ROUTE_WITH_AUTH = ['/sign-in'];
export async function middleware(req) {
const noAuthRedirectUrl = req.nextUrl.clone();
noAuthRedirectUrl.pathname = '/sign-in';
const withAuthRedirectUrl = req.nextUrl.clone();
withAuthRedirectUrl.pathname = '/';
if (PROTECT_ROUTE_WITHOUT_AUTH.includes(req.nextUrl.pathname)) {
const session = await getToken({
req,
});
if (!session) return NextResponse.redirect(noAuthRedirectUrl);
}
if (PROTECT_ROUTE_WITH_AUTH.includes(req.nextUrl.pathname)) {
const session = await getToken({
req,
});
if (session) return NextResponse.redirect(withAuthRedirectUrl);
}
return NextResponse.next();
}
// middleware.ts
import { NextResponse } from 'next/server';
import { getToken } from 'next-auth/jwt';
const PROTECT_ROUTE_WITHOUT_AUTH = ['/private-route'];
const PROTECT_ROUTE_WITH_AUTH = ['/sign-in'];
export async function middleware(req) {
const noAuthRedirectUrl = req.nextUrl.clone();
noAuthRedirectUrl.pathname = '/sign-in';
const withAuthRedirectUrl = req.nextUrl.clone();
withAuthRedirectUrl.pathname = '/';
if (PROTECT_ROUTE_WITHOUT_AUTH.includes(req.nextUrl.pathname)) {
const session = await getToken({
req,
});
if (!session) return NextResponse.redirect(noAuthRedirectUrl);
}
if (PROTECT_ROUTE_WITH_AUTH.includes(req.nextUrl.pathname)) {
const session = await getToken({
req,
});
if (session) return NextResponse.redirect(withAuthRedirectUrl);
}
return NextResponse.next();
}