Skip to content

Conversation

@jjjh02
Copy link
Contributor

@jjjh02 jjjh02 commented Aug 28, 2025

문제 사항

  • 동일한 초(sec) 내에 여러 번 access token 재발급이 발생하는 경우 createAccessToken()에서 사용하는 claim(sub, exp, email, userId) 값이 모두 동일하게 설정됨
  • JWT는 payload와 secretKey를 기준으로 서명되므로 claim 값이 동일하면 동일한 토큰 문자열이 발급되는 문제가 있었음
  • 그 결과, 같은 시점에 여러 클라이언트 요청이 동시에 refresh를 수행할 경우 토큰 중복 발급 및 클라이언트 혼선 가능성이 존재

변경 사항

  • JWT 표준 claim 중 하나인 jti (JWT ID)를 추가하여 매 토큰마다 고유 식별자가 부여되도록 변경
  • UUID.randomUUID()를 사용해 고유값을 생성하고 withJWTId() claim에 추가
  • 이를 통해 동일한 초 내에서 재발급이 발생하더라도 항상 서로 다른 access token이 발급됨

@JunbeomKoreaUniv
Copy link
Contributor

오 수고하셨습니다.
운영단계도 아닌데 이런 상황이 발생하네요

@JunbeomKoreaUniv JunbeomKoreaUniv merged commit 5da1d3e into main Aug 28, 2025
2 checks passed
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.

3 participants