Auth Feature

인증과 권한 관리는 사용자 확인과 접근 허용을 분리한다

Next.js에서는 렌더링 전에 세션을 확인하고, role·permission·owner 조건을 서버에서 판정해야 redirect와 403이 명확해진다.

보호 라우트 단계

access control

로그인

Credentials나 OAuth 콜백에서는 계정 확인과 세션 생성 책임만 둔다.

세션

서버 컴포넌트, 미들웨어, 라우트 핸들러에서 세션 없음을 먼저 걸러낸다.

권한

admin role, project owner, can:write 같은 권한을 리소스 단위로 검사한다.

보호

페이지는 redirect/403, API route는 401/403 JSON으로 실패를 분기한다.

requestsessionpermissionredirect/403
보호 라우트 단계

클라이언트 조건부 렌더링은 UX 보조일 뿐이다. 데이터 조회와 변경은 서버 측 guard를 통과한 뒤 실행되어야 한다.