middleware
export default async function authMiddleware(request: NextRequest) {
const { data: session } = await betterFetch<Session>(
'/api/auth/get-session',
{
baseURL: request.nextUrl.origin,
headers: {
cookie: request.headers.get('cookie') || ''
}
}
)
if (!session) {
return NextResponse.redirect(new URL('/sign-in', request.url))
}
if (
session.user.role === 'user' &&
request.nextUrl.pathname.startsWith('/dashboard')
) {
return NextResponse.redirect(new URL('/profile', request.url))
}
return NextResponse.next()
}
export const config = {
matcher: ['/checkout/:path*', '/profile', '/dashboard:path*']
}
middleware
export default async function authMiddleware(request: NextRequest) {
const { data: session } = await betterFetch<Session>(
'/api/auth/get-session',
{
baseURL: request.nextUrl.origin,
headers: {
cookie: request.headers.get('cookie') || ''
}
}
)
if (!session) {
return NextResponse.redirect(new URL('/sign-in', request.url))
}
if (
session.user.role === 'user' &&
request.nextUrl.pathname.startsWith('/dashboard')
) {
return NextResponse.redirect(new URL('/profile', request.url))
}
return NextResponse.next()
}
export const config = {
matcher: ['/checkout/:path*', '/profile', '/dashboard:path*']
}