로그인 권한 확장
기존엔 카카오 로그인이 곧 관리자 인증이었다. 내 카카오 회원번호와 일치할 때만 admin JWT를 발급하는 구조였는데, 이번엔 아무나 로그인해서 댓글·방명록을 쓸 수 있도록 JWT에 role: "admin" | "user" 클레임을 추가해 확장했다.
권한 상승 버그
일반 로그인을 허용하자마자, 글 작성·삭제를 막던 requireAdmin 미들웨어가 사실 JWT가 유효한지만 검사하고 role은 확인하지 않았다는 걸 발견했다. 로그인만 하면 일반 사용자도 관리자 API를 그대로 호출할 수 있는 상태였던 것이다. 관리자 로그인 하나만 있을 땐 드러나지 않던 문제가, "일반 사용자"라는 개념이 생기자마자 실제 구멍으로 드러난 케이스다.
() {
payload = (req);
(!payload) res.().({ : });
();
}
() {
payload = (req);
(!payload) res.().({ : });
(payload. !== ) res.().({ : });
();
}
