Skip to content

Conversation

@mmihye
Copy link
Member

@mmihye mmihye commented Apr 8, 2025

🚩 관련 이슈

📋 구현 기능 명세

  • getAuthentication 함수에서 DB 조회 로직 삭제
  • PrincipalDetails에 email, memberType, id 처럼 불변이고 보안적으로 문제없는 값을 저장
  • PrincipalDetails.getMember() 로직 모두 수정

📌 PR Point

  • 무슨 이유로 어떻게 코드를 변경했는지
    현재 로직에서는 jwt 필터에서 tokenProvider.getAuthentication(token)으로 Authentication 객체 반환 ->
    getAuthentication 함수 내부적으로는 token에서 이메일과 멤버타입 정보를 가지고 DB에서 member 객체를 조회하여 PrincipalDetails 저장함

현재 로직은 모든 api가 jwt 필터를 지나면서 매번 DB를 조회한다. -> 사용자가 많으면 DB 부하 증가
-> JWT의 장점 중 하나는 클라이언트가 전달하는 토큰 자체에 사용자 정보를 포함하고 있어 서버가 상태를 저장할 필요가 없다는 것인데, 이 코드에서는 매 요청마다 DB에서 사용자 정보를 조회하고 있다. (사용자 정보를 조회하지않아도 되는 api도 무조건 조회되고 있음)

  • 어떤 부분에 리뷰어가 집중해야 하는지
    getMember 대신 모두 memberId로 변경했는데 혹시 중간에 이상하게 변경한 부분이 있는지,,, 너무 많아서 실수 있을까봐 두렵다...

거의 지금 대부분이 member 별로 조회할때 member 객체 기준으로 조회하는데 memberId를 기준으로 검색한다면 굳이 memberService에서 member를 찾고 또 조회할필요가 없을 것 같습니다! 나중에 이것도 수정하면 좋을거같아요~~

  • 개발하면서 어떤 점이 궁금했는지

🛠️ 테스트

  • 테스트

@mmihye mmihye requested a review from sycuuui April 8, 2025 13:21
@mmihye mmihye self-assigned this Apr 8, 2025
@sycuuui
Copy link
Member

sycuuui commented Apr 8, 2025

현재 JWT 인증방식을 id로 전환한 부분 좋아요

여기서 JWT에서 memberId조회 실패시 예외처리 하면 더 좋을 것 같아요!

@mmihye
Copy link
Member Author

mmihye commented Apr 8, 2025

여기서 JWT에서 memberId조회 실패시 예외처리 하면 더 좋을 것 같아요!

혹시 코드 어디 부분 말하는걸까요??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: JWT 토큰 인증 로직 개선

3 participants