import { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; export function middleware(request: NextRequest) { const token = request.cookies.get('auth_token')?.value; const { pathname } = request.nextUrl; // Protect dashboard routes if (pathname.startsWith('/dashboard')) { if (!token) { const loginUrl = new URL('/login', request.url); loginUrl.searchParams.set('redirect', pathname); return NextResponse.redirect(loginUrl); } } // Redirect to dashboard if already logged in and trying to access auth pages if ((pathname === '/login' || pathname === '/register') && token) { return NextResponse.redirect(new URL('/dashboard', request.url)); } return NextResponse.next(); } export const config = { matcher: ['/dashboard/:path*', '/login', '/register'], };