Authz Guard

권한 검사는 서버에서 한 번 더 검증한다

메뉴를 숨기는 것과 요청을 차단하는 것은 다릅니다. 페이지, API, DB 조건이 같은 권한 모델을 바라봐야 합니다.

Session

요청 주체 확정

쿠키나 JWT에서 userId를 복원하고 만료, 탈퇴, 잠금 계정은 즉시 401로 끊습니다.

Role

역할과 소유자

admin role만 믿지 말고 organizationId, resource owner, membership 상태를 함께 봅니다.

Guard

서버 측 차단

Server Component, Server Action, Route Handler마다 requirePermission을 통과시킵니다.

Failure

실패 응답

미로그인은 redirect/401, 권한 없음은 403, 숨겨야 할 리소스는 404로 분기합니다.

점검 게이트: 클라이언트 메뉴 숨김은 보조이며, API route와 DB where 조건에서 tenantId, ownerId, permission을 다시 검증해야 합니다.