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

feat: Refresh Token Rotation 구현 #222

Merged
merged 11 commits into from
Nov 30, 2024
Merged

Conversation

23tae
Copy link
Member

@23tae 23tae commented Nov 30, 2024

🔍️ 이 PR을 통해 해결하려는 문제가 무엇인가요?

어떤 기능을 구현한건지, 이슈 대응이라면 어떤 이슈인지 PR이 열리게 된 계기와 목적을 Reviewer 들이 쉽게 이해할 수 있도록 적어 주세요
일감 백로그 링크나 다이어그램, 피그마, 캡쳐를 첨부해도 좋아요

  • Refresh Token의 탈취 및 재사용으로 인한 보안 취약점이 존재합니다.
  • 이를 해결하기 위해 Refresh Token Rotation을 도입하였습니다.

✨ 이 PR에서 핵심적으로 변경된 사항은 무엇일까요?

문제를 해결하면서 주요하게 변경된 사항들을 적어 주세요

  1. Refresh Token Rotation 구현

    • 토큰 재발급 시 새로운 Refresh Token 생성
    • Redis를 활용한 토큰 검증 로직 추가
    • 토큰 재사용 예외 처리 구현
  2. Redis를 활용한 Refresh Token 관리 구현

    • Refresh Token 저장/조회/삭제 기능 구현
    • prefix를 활용한 토큰 키 관리
    • AES 암호화를 통한 토큰 저장
  3. 로그아웃 API 리팩토링

    • 로그아웃 로직을 AuthService로 이동
    • Refresh Token Rotation 반영

🔖 핵심 변경 사항 외에 추가적으로 변경된 부분이 있나요?

없으면 "없음" 이라고 기재해 주세요

  • AES 암호화를 위한 환경 변수(JWT_ENCRYPTION_AES_SECRET) 추가: (16/24/32 bytes)
  • JwtTokenProvider의 책임을 독립된 컴포넌트로 분리하여 코드 구조 개선
  • 쿠키 maxAge 설정 시 밀리초를 초로 변환하는 로직 추가

🙏 Reviewer 분들이 이런 부분을 신경써서 봐 주시면 좋겠어요

개발 과정에서 다른 분들의 의견은 어떠한지 궁금했거나 크로스 체크가 필요하다고 느껴진 코드가 있다면 남겨주세요

🩺 이 PR에서 테스트 혹은 검증이 필요한 부분이 있을까요?

테스트가 필요한 항목이나 테스트 코드가 추가되었다면 함께 적어주세요

📌 PR 진행 시 이러한 점들을 참고해 주세요

  • Reviewer 분들은 코드 리뷰 시 좋은 코드의 방향을 제시하되, 코드 수정을 강제하지 말아 주세요.
  • Reviewer 분들은 좋은 코드를 발견한 경우, 칭찬과 격려를 아끼지 말아 주세요.
  • Review는 특수한 케이스가 아니면 Reviewer로 지정된 시점 기준으로 3일 이내에 진행해 주세요.
  • Comment 작성 시 Prefix로 P1, P2, P3 를 적어 주시면 Assignee가 보다 명확하게 Comment에 대해 대응할 수 있어요
    • P1 : 꼭 반영해 주세요 (Request Changes) - 이슈가 발생하거나 취약점이 발견되는 케이스 등
    • P2 : 반영을 적극적으로 고려해 주시면 좋을 것 같아요 (Comment)
    • P3 : 이런 방법도 있을 것 같아요~ 등의 사소한 의견입니다 (Chore)


📝 Assignee를 위한 CheckList

  • To-Do Item

@23tae 23tae self-assigned this Nov 30, 2024
@23tae 23tae merged commit ee16082 into main Nov 30, 2024
1 check passed
@23tae 23tae deleted the feat/auth-refresh-token-rotation branch November 30, 2024 08:07
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.

1 participant