matcher 축소
보호할 /api/admin, /api/editor 같은 경로만 실행 대상으로 둡니다.
config.matcher
matcher에 걸린 요청을 전부 가로채는 만큼, 미들웨어에는 토큰과 헤더만으로 끝나는 일을 두고 DB 조회나 본문 기반 검증은 route.ts에 남겨야 합니다.
보호할 /api/admin, /api/editor 같은 경로만 실행 대상으로 둡니다.
config.matcher
withAuth가 붙인 req.nextauth.token으로 role을 확인합니다.
token.role
로그, 레이트리밋 키, 보안 헤더처럼 짧은 작업만 처리합니다.
NextResponse.next()
API 요청은 권한 실패를 JSON과 403으로 명확하게 반환합니다.
403 Forbidden