개인 프로젝트/블로그

jwt를 이용한 조건부 렌더링 처리 고민

공주맛밤 2022. 7. 19. 11:59

나만의 블로그 만들기에선 댓글을 달기 위해서 로그인이 필요할 뿐 로그인을 하더라도 글을 쓰거나 삭제하거나 할 순 없다.(정말 나만의 블로그이기 때문에 나만 포스팅에 관한 일을 할 수 있도록 하고 싶었다.) 그런데 jwt로 로그인을 구현 했다 보니 로그인 이후에 '글쓰기 버튼'과 같은 것들은 관리자인 나에게만 보여야 하도록 하려고 하는데 어려움이 있다. (jwt토큰으로는 권한을 확인 할 수 없다. 토큰을 spring에서 검증하고 해당하는 username으로 user테이블에서 권한을 확인하고 spring security에서 요청을 허용하거나 거부하기 때문이다.) 그래서 로그인을 하면 블로그의 주인인 나와 일반 로그인 이용자를 어떻게 구별 지을 수 있을까?

-> redirect페이지(쿼리 스트링으로 accessToken과 refreshToken을 받아 localstorage에 저장하는 페이지)에서 해당 accessToken으로 권한을 받아 올까? 만일 권한을 localstorage에 저장해놔도 accessToken의 claim에는 권한에 대한 내용이 담겨 있지 않기 때문에 괜찮을 듯하다.(spring에서 username으로 권한을 찾고 securityConfig에 적용이 되어 있음, js로 접근하여 'authority'를 관리자로 바꾸어도 렌더링되는 컴포넌트들만 바뀔 뿐 요청을 할 순 없음, 그래도 혹시 몰라 ROLE_비밀☆로 전달)

728x90
반응형