Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] 이동봉사자/중개 로그아웃 API 구현 #132

Merged
merged 2 commits into from
Nov 21, 2023

Conversation

hojeong2747
Copy link
Member

💡 연관된 이슈

close #131

📝 작업 내용

  • 이동봉사자/중개 로그아웃 API 구현

💬 리뷰 요구 사항

로그아웃 기능 구현은 처음이라 맞게 했는지 한 번 봐주시면 좋을 것 같아요~!
제가 생각하고 구현한 로그아웃 플로우는 다음과 같습니다.

  1. accessToken을 추출한다.
  2. volunteer/intermediary 객체를 찾는다.
  3. redis에 저장했던 roleName을 accessToken에서 찾아온다.
  4. redis에 해당 roleName + id에 해당하는 key를 찾아 지운다.
  5. redis에 해당 accessToken을 blackList로 등록한다.

@hojeong2747 hojeong2747 added ✨ Feature 기능 개발 Priority: Medium 우선순위 중간 🐰 Hojeong 담당자 labels Nov 21, 2023
Copy link
Member

@kyeong-hyeok kyeong-hyeok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

로그아웃 기능을 잘 구현하신 것 같습니다!
해당 사용자의 refresh token을 삭제하고 access token은 블랙 리스트에 추가하는 것 좋습니다!

String roleName = jwtService.extractRoleName(accessToken).orElseThrow(() -> new BadRequestException(NOT_FOUND_ROLE_NAME));

redisUtil.delete(roleName, volunteer.getId());
volunteerFcmRepository.deleteById(volunteer.getId());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고민이 있습니다! 로그아웃 시 FCM 토큰을 삭제할 때 여러 기기에서 접속했을 경우 volunteerId에 대한 FCM 토큰이 여러 개가 있을 것이라 생각합니다. 그렇다고 deleteAll을 하면 모든 기기의 토큰이 사라질 것이라 생각됩니다!

해당 기기에서만 로그아웃을 시키므로 해당 기기의 fcm 토큰만 삭제하는 게 맞다고 생각하는데 좋은 방법이 있을까요? (그리고 현재 deleteById -> deleteByVolunteerId 가 되어야 할 것 같습니다!)
지금 생각하기로는 로그아웃할 때 해당 기기의 fcm token을 식별할 수 있는 값을 넘겨주면 좋을 것 같은데, 프론트에서 넘겨주지 않으면 따로 방법이 없을 것 같습니다!

Copy link
Member Author

@hojeong2747 hojeong2747 Nov 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사용자가 여러 기기를 사용할 경우 각 기기별로 다른 토큰을 저장할 수 있긴 한데 경혁님 말처럼 그렇게 하려면 프론트에서 기기 유형과 같은 추가 정보를 토큰에 담아서 줘야 가능할 것 같습니다!

deleteById 변경 건은 생각을 못했네요 ㅎㅎ 예리한 피드백 감사합니다아 😊

@hojeong2747 hojeong2747 merged commit 9da0179 into develop Nov 21, 2023
1 check passed
@hojeong2747 hojeong2747 deleted the feat/131-logout-api branch November 21, 2023 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발 🐰 Hojeong 담당자 Priority: Medium 우선순위 중간
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature] 이동봉사자/중개 로그아웃 API 구현
2 participants