21 lines
658 B
TypeScript
21 lines
658 B
TypeScript
import { NextResponse } from 'next/server';
|
|
import type { NextRequest } from 'next/server';
|
|
|
|
export function middleware(request: NextRequest) {
|
|
const isAuthenticated = request.cookies.get('isAuthenticated')?.value === 'true';
|
|
const isLoginPage = request.nextUrl.pathname === '/login';
|
|
|
|
if (!isAuthenticated && request.nextUrl.pathname.startsWith('/dashboard')) {
|
|
return NextResponse.redirect(new URL('/login', request.url));
|
|
}
|
|
|
|
if (isAuthenticated && isLoginPage) {
|
|
return NextResponse.redirect(new URL('/dashboard', request.url));
|
|
}
|
|
|
|
return NextResponse.next();
|
|
}
|
|
|
|
export const config = {
|
|
matcher: ['/dashboard/:path*', '/login']
|
|
};
|