almondiz / almondiz-server

0 stars 1 forks source link

[MEET] REST API path에 user id 넣는 상황 발생 #32

Closed coderclcl closed 1 year ago

coderclcl commented 1 year ago

가능한 시간 ⏲️

논의 내용 ❓

PostController 에서 사용자별 post 조회 (/user/{userId}/posts) 구현시 userId를 path에서 빼는 방법이 떠오르지 않아서 논의가 필요합니다. 이 경우는 타인의 post를 조회하는 경우도 있어서 JWT로 해결이 불가능하고, 클라이언트에서 어쩔 수 없이 user id 값을 갖고 있게 될 것 같네요.. 보안적으로 개선할 수 있는 방안이 있을까요?

yejipractice commented 1 year ago

post 조회 시에는 작성자(본인이 아닌) 기준으로 하면 안될 것 같고 post id로 조회해야 할 것 같아요! postid는 클라이언트에서 들고 있을 거에요! 그렇게 되면 userId랑은 연관이 없어지므로 뺄 수 있을 것 같아요! (보안적으로 개선 가능)

coderclcl commented 1 year ago

이 부분은 "사용자"별 post 조회라서 post id 로만 조회하기에는 어려움이 있을 것 같은데 어떻게 생각하시나요?? 물론 피드 페이지에서 클라이언트가 요청한다면 post id 로 user id 를 찾아서 해당 user id 로 다시 post 테이블 조회하는 방법이 있겠지만, 만약 포스트가 없는 follow 리스트 페이지에서 닉네임을 누르는 상황이라면 post id를 클라이언트가 들고 있지 않을것같아요..! (user 정보 리스트만 나열된 페이지일테니까요!)

coderclcl commented 1 year ago

그리고 이 부분 뿐만 아니라 follow 관련 부분도 다시 생각해볼 필요가 있을 것 같습니다..! FollowRequestDto 에 followeeId 같은 정보가 들어간다면, FollowResponseDto에 user id가 결국 들어가야할것같아요..! 그러면 path에서 user id를 없앤다 하더라도 결국 클라이언트에서 관찰 가능한 게 아닌가 싶네요..

yejipractice commented 1 year ago

사용자별 post 조회는 토큰에서 사용자 식별한 다음에 findAllPostByUser로 구현할 수 있을 것 같습니다 아하 FollowDto에는 userId를 넣는 방향으로 할까요? 이 두 부분에 대해 의견 주시면 필요에 따라 이슈 만들겠습니다! : ) @coderclcl

AwesomeDni commented 1 year ago

제가 회사에서 사용한 방식은 글을 조회하는데 필요한 파라미터들을 request body(request dto) 로 받아서 처리했습니다. API method는 post를 기본으로 했습니다.

yejipractice commented 1 year ago

아 자신 사용자별 포스트가 아니라 다른 사용자별 포스트라면 토큰으로 해결이 안되겠군요..? 이걸 말씀하신거죠? 아하 이걸 놓쳤네요 그럼 dto로 해야할 것 같네요... body가 생기면 post로 해야겠네요 다니엘님 말씀처럼 ... 굿굿

coderclcl commented 1 year ago

아하 dto로 해결해야 하는군요!! 네넵 감사합니다! 이렇게 수정해볼게요!

yejipractice commented 1 year ago

33 에서 구현 예정이므로 이 이슈는 닫겠습니다