Skip to content

fix: JWT 토큰 인증 로직 개선 #113

@mmihye

Description

@mmihye

✨ About Issue ✨
현재 로직에서는 jwt 필터에서 tokenProvider.getAuthentication(token)으로 Authentication 객체 반환 ->
getAuthentication 함수 내부적으로는 token에서 이메일과 멤버타입 정보를 가지고 DB에서 member 객체를 조회하여 PrincipalDetails 저장함

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

✅ Todo

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

Metadata

Metadata

Assignees

Labels

fix기존 작성된 코드 수정 시

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions