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 도입 #231

Merged
merged 10 commits into from
Dec 8, 2024
Merged

feat : refresh token 도입 #231

merged 10 commits into from
Dec 8, 2024

Conversation

rladmstn
Copy link
Contributor

@rladmstn rladmstn commented Dec 7, 2024

📌 Related Issue

close #230

🚀 Description

  • refresh token을 도입했습니다.
  • 일반적인 구현은 하나의 refresh token으로 여러 번 access token 발급이 가능합니다.
  • 여기서 더 보안을 챙기고 싶으면 RTR (Refresh Token Rotation) 기법을 사용할 수 있습니다.
  • RTR 기법이란 간단히 말해 하나의 refresh token은 하나의 access token만 발급할 수 있는 원리입니다.
  • 보안을 얻지만 jwt의 stateless라는 장점을 잃어버리는 구현인지라 어느정도 trade off가 발생하는 기법입니다.
  • 트랜잭션 전파에 대해서도 다시 공부해서 구현한지라 어렵고 너무 오래걸렸네요..
  • @Transactional 어노테이션에 noRollbackFor 속성을 사용하면 특정 예외 클래스가 발생했을 때, 해당 지점까지의 수행을 commit 합니다. (전체 rollback X)
  • 이번 구현에서는 토큰 재발급 시 만료된 refresh token이 감지됐을 때, 해당 refresh token을 즉각 무효화하기 위해 repository에서 삭제해야했습니다.
  • 따라서 ExpiredTokenException이 발생했을 경우는 토큰 제거가 꼭 commit 되어야 하므로 noRollbackFor = ExpiredTokenException.class를 추가했습니다.

📢 Review Point

📚Etc (선택)

@rladmstn rladmstn added the new-feature 기능 추가 label Dec 7, 2024
@rladmstn rladmstn requested review from s-hwan and sh0723 December 7, 2024 15:46
@rladmstn rladmstn self-assigned this Dec 7, 2024
Copy link
Contributor

@s-hwan s-hwan left a comment

Choose a reason for hiding this comment

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

고생많았습니다!

@s-hwan s-hwan merged commit 0729081 into develop Dec 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature 기능 추가
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat : refresh token 도입
2 participants