iBetter Books
수정

PART 06. 문을 지키는 사람 — 인증과 미들웨어

여기까지 오면서 우리는 꽤 많은 것을 만들었습니다. 페이지를 라우팅하고, 데이터를 가져오고, 서버에서 렌더링했습니다. 그런데 한 가지 빠진 게 있습니다. 누구나 모든 페이지를 볼 수 있다는 것입니다.

실제 서비스라면 당연히 구별이 있어야 합니다. 로그인한 사람만 볼 수 있는 페이지, 관리자만 접근할 수 있는 기능, 본인의 글만 수정할 수 있는 권한. 이런 것들이 없다면 서비스가 아니라 그냥 공개 웹사이트입니다.

이번 PART에서는 문을 지키는 사람을 만듭니다. 아무나 들어오지 못하도록 입구에서 확인하고, 허가된 사람만 통과시키는 체계를 구축합니다. Next.js에서 인증은 여러 층위에서 동작합니다. 요청이 들어오는 순간부터 시작해서, 미들웨어가 먼저 검사하고, 서버 컴포넌트가 세션을 확인하고, 클라이언트 컴포넌트가 UI를 조정합니다.

로그인 없이는 들어올 수 없는 공간을 만드는 방법을 배웁니다.

이번 PART에서 배울 내용

  • 인증과 인가의 차이, 그리고 Next.js에서 인증이 동작하는 방식
  • NextAuth.js(Auth.js)로 로그인 시스템 구현하기
  • JWT 토큰의 구조와 세션 전략
  • middleware.ts로 모든 요청을 검사하는 관문 만들기
  • 보호된 페이지와 권한별 접근 제어
  • Google, GitHub OAuth 소셜 로그인 연동