// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { auth } from '@/lib/auth';
export async function middleware(request: NextRequest) {
console.log("MIDDLEWARE STARTS")
const session = await auth.api.getSession({ headers: request.headers });
console.log(session);
const { pathname } = request.nextUrl;
console.log(pathname);
if (!session) {
// not logged in redirect to /
return NextResponse.redirect(new URL('/', request.url));
}
console.log("ROLLE: ", session.user.role)
if (pathname.startsWith('/admin') && session.user.role !== 'admin') {
return NextResponse.redirect(new URL('/user', request.url));
}
if (pathname.startsWith('/user') && session.user.role !== 'user') {
return NextResponse.redirect(new URL('/admin', request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ['/admin/:path*', '/user/:path*'],
};
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { auth } from '@/lib/auth';
export async function middleware(request: NextRequest) {
console.log("MIDDLEWARE STARTS")
const session = await auth.api.getSession({ headers: request.headers });
console.log(session);
const { pathname } = request.nextUrl;
console.log(pathname);
if (!session) {
// not logged in redirect to /
return NextResponse.redirect(new URL('/', request.url));
}
console.log("ROLLE: ", session.user.role)
if (pathname.startsWith('/admin') && session.user.role !== 'admin') {
return NextResponse.redirect(new URL('/user', request.url));
}
if (pathname.startsWith('/user') && session.user.role !== 'user') {
return NextResponse.redirect(new URL('/admin', request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ['/admin/:path*', '/user/:path*'],
};