Files
nextplacement/apps/student/middleware.ts
2025-07-06 23:30:58 +05:30

26 lines
784 B
TypeScript

import { auth } from '@/auth';
import { NextResponse, NextRequest } from 'next/server';
export default auth((req: NextRequest) => {
if (!req.auth) {
return NextResponse.redirect(new URL('/login', req.url));
}
if (req.auth.user?.role === 'USER') {
if (!req.auth.user?.completedProfile && !req.nextUrl.pathname.startsWith('/signup')) {
const signupUrl = process.env.STUDENT_PROFILE_URL ?? 'http://localhost:3000/signup';
return NextResponse.redirect(new URL(signupUrl, req.url));
}
return NextResponse.next();
}
const adminUrl = process.env.ADMIN_URL ?? 'http://localhost:3001';
return NextResponse.redirect(new URL(adminUrl, req.url));
});
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico|login).*)'],
};