패스잇
프론트엔드 개발 · 중급

Middleware 파일 내부에서 조건부로 사용자를 로그인 페이지로 리다이렉트 시키려면 어떤 클래스의 메서드를 반환해야 하나요?

힌트 · `NextResponse.redirect(new URL('/login', request.url))` 객체를 반환해야 합니다.

NextResponseredirectURLmiddleware

모범답안

미들웨어에서 조건부 리다이렉트를 하려면 NextResponse 클래스의 redirect 메서드를 사용해야 합니다. NextResponse.redirect()는 새로운 URL로 리다이렉트하는 응답 객체를 반환합니다.

예를 들어, 로그인하지 않은 사용자를 로그인 페이지로 리다이렉트하려면 다음과 같이 할 수 있습니다.

import { NextResponse } from 'next/server';

export function middleware(request) {
  const isLoggedIn = // 로그인 여부 확인 로직
  if (!isLoggedIn) {
    return NextResponse.redirect(new URL('/login', request.url));
  }
}

여기서 new URL('/login', request.url)은 로그인 페이지의 절대 URL을 생성하는 데 사용됩니다. request.url은 현재 요청 URL을 기반으로 하기 때문에, 올바른 도메인과 프로토콜을 유지하면서 리다이렉트할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Next.js 면접 질문

← Next.js 면접 질문 전체 보기