개발자

사용자 식별을 프론트에서? 백에서?

2024년 09월 19일조회 513

보통 게시글을 작성하게 되면 수정 삭제 버튼은 게시글 작성자만 보이도록 하는게 일반적인 서비스에서 많이들 보이는 방식인데, 이럴 경우 게시글 작성자인지 식별은 보통 어떻게 하는게 올바른가요? 백엔드에서 식별하고 Response에 담아야할까요? 아니면 백엔드에서 유저 정보를 끌고와서 프론트에서 식별해야할까요?

투표
225명 참여중
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

지성님의 프로필 사진

기본적으로 유효성 검사 등은 프백 둘 다 하는게 좋습니다만 작성자인지 식별하는 것만이 목표라면 보통 서버에서 불리언값으로 보내주기만 해도 충분하지 않을까요? 게시글 작성자 정보와 현재 조회중인 유저 정보를 어차피 요청하고 있다면 프론트에서 판단할 수 있겠지만 여부 정도 판단하는데 굳이 유저 정보까지 받을 필요는 없을거 같아요

이상래님의 프로필 사진

안녕하세요, 질문에 대해 제 의견을 말씀드려볼게요. 백엔드에서 식별하고 처리하는 방법 (권장) 이 방법이 가장 보편적이고 안전한 방식이에요. 왜냐하면 프론트엔드에서 사용자 정보를 가지고 직접 식별을 하면, 클라이언트는 쉽게 조작될 수 있기 때문이에요. 중요한 권한 처리나 게시글 작성자인지 여부는 백엔드에서 확인하고, 그 결과를 프론트엔드로 넘겨주는 게 일반적입니다. 백엔드에서는 사용자 토큰(JWT 등)을 통해 인증된 사용자인지 확인하고, 해당 게시글이 그 사용자가 작성한 것인지 체크한 후, 예를 들어, "isAuthor": true 같은 식으로 응답에 포함시키는 방식이에요. 이렇게 하면 프론트엔드는 단순히 그 응답 값에 따라 UI를 변경하기만 하면 되니 보안적으로도 안전하고, 구조도 깔끔해요. 프론트엔드에서 권한 처리를 하는 건 마치 자물쇠가 달린 문을 설치했는데, 그 자물쇠를 누구나 쉽게 해제할 수 있는 공구를 함께 제공하는 것과 같아요. 사용자에게 직접 권한을 확인하도록 맡기면, 언제든 그 자물쇠를 해제해버릴 수 있죠. 반대로 백엔드에서 권한을 처리하는 건 문을 아예 안전한 서버실 안에 넣어서, 밖에서는 절대 열 수 없도록 하는 것이에요. 사용자는 그저 서버의 허락을 받아 문을 통과할 수 있냐 없냐만 결정될 뿐이에요. 이런 이유로 프론트엔드에서 권한이나 사용자 식별 관련 로직을 처리하는 것은 보안적으로 비권장되고, 백엔드에서 처리하는 방식이 더 안전하다고 말씀드린 거예요. 도움이 되었으면 좋겠네요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!