two-clock / backend

개발자를 위한 Github 계정 및 저장소 정보 공유 서비스
4 stars 0 forks source link

feat: Add logout functionality and improve JWT management #30

Closed openmpy closed 3 months ago

openmpy commented 3 months ago

관련 이슈

변경 사항

체크 목록

리뷰 요청

@jjangsky 님~ 로그아웃 기능 구현 했습니다. 필터단에서 예외처리는 많이 사용할거 같아 CustomResponseUtil 클래스를 따로 만들어서 구현했습니다. 확인 부탁드리겠습니다.

openmpy commented 3 months ago

추가적으로 궁금한 점이 단순하게 JWT로만 로그인을 구현한다면 세션 인증과 달리 브라우저에서 다중 로그인이 가능한 것으로 알고 있습니다. Redis를 사용하여 로그인 시 마다 AccessToken과 RefreshToken을 발급하고 저장하며 Redis 내부에는 사용자 Key를 가진 Refresh 토큰이 저장되어 있는 상태이고 만약 여기서 다른 브라우저 혹은 다른 기기로 로그인 할 경우 기존에 로그인 되어 있는 사용자에 대해서 인증 해제 처리가 가능할까요? 아니면 추후 생성될 인가 필터에서 처리가 되어야 할까요?

@jjangsky 님, 이 부분에 대해서는 깊게 생각을 해보지 않았지만 가능하지 않을까? 싶습니다. 이용자가 새로 로그인을 진행 했을 시 기존의 발급된 토큰들을 무효화 시키면 되지 않을까? 싶은데 어떻게 생각하시나요? 새로 로그인을 진행 했는지 판단 여부는 로그인 할 때 Redis 에 GitHub ID 로 발급된 Refresh Token 이 존재하는지 확인해보면 될거 같습니다.

jjangsky commented 3 months ago

@openmpy 확실히 Redis를 도입하니까 이런 부분에서도 좋긴 하네요 회사에서 중복 로그인 막을려고 JWT와 Session을 같이 사용하고는 했는데... 😢

중복 로그인 관련해서는 따로 PR 올리는 것이 좋을 것 같습니다 ! Merge 합격 드리겠습니다~

openmpy commented 3 months ago

PR Merge 진행 하겠습니다 ~