Skip to content

✨ Feat: 회원 JWT 토큰과 비회원 임시 토큰 발급 기능 구현#17

Merged
Bumnote merged 1 commit intodevfrom
feat/generate-jwt-token
Apr 22, 2025
Merged

✨ Feat: 회원 JWT 토큰과 비회원 임시 토큰 발급 기능 구현#17
Bumnote merged 1 commit intodevfrom
feat/generate-jwt-token

Conversation

@Bumnote
Copy link
Copy Markdown
Member

@Bumnote Bumnote commented Apr 22, 2025

#️⃣ 연관된 이슈

#15

📝 작업 내용

  • JWT & Apache Lang3 StringUtils 의존성을 추가하였습니다.

  • JWT 토큰 및 임시 UUID 토큰을 임시로 저장하기 위해서 Redis In-Memory DB를 활용했습니다.

  • Security 설정으로 JwtAuthenticationFilter -> GuestAuthenticationFilter 순서로 필터를 실행합니다.

  • Filter를 통해서 회원과 비회원을 구분합니다.

    • 회원인 경우 -> Access JWT 토큰을 필터링하여 활용합니다.
    • 비회원 경우 -> Anonymous 토큰을 생성하여 활용합니다.
  • 카카오 OAuth2 로그인에 성공했다면, Redirect와 함께 임시 토큰을 parameter로 전달합니다.

  • 해당 임시 토큰을 활용하여 추후 회원가입 로직을 수행합니다.


💬 리뷰 요구사항

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요


- JWT 라이브러리를 활용하기 위해서 필요한 의존성을 추가하였습니다.
- 토큰을 조금 더 자유롭게 제어하기 위해서 Apache Lang3 StringUtils 의존성을 추가하였습니다.
- JWT 토큰 및 임시 UUID 토큰을 임시로 저장하기 위해서 Redis In-Memory DB를 활용했습니다.
- ACCESS JWT 토큰의 생존 기간은 3일, REFRESH JWT 토큰의 생존 기간은 7일로 설정하였습니다.
- 민감하지 않은 최소한의 유저 정보를 포함하기 위해서 KakaoId와 Role 값을 저장했습니다.
- ACCESS JWT 토큰이 존재한다면, JwtAuthenticationFilter에서 UsernamePasswordAuthenticationToken을 발급합니다.
- ACCESS JWT 토큰이 존재하지 않다면, GuestAuthenticationFilter에서 AnonymousAuthenticationToken을 발급합니다.
- 이를 통해 엔드포인트마다 Role 권한에 맞는 메소드 실행에 제한을 두었습니다.
- Security 설정으로 JwtAuthenticationFilter -> GuestAuthenticationFilter 순서로 필터를 실행합니다.
- 카카오 OAuth2 로그인에 성공했다면, Redirect와 함께 임시 토큰을 parameter로 전달합니다.
- 해당 임시 토큰으로 프론트엔드 개발자와 정보를 주고받습니다.

issue #15
@Bumnote Bumnote requested a review from kyubumjang April 22, 2025 12:51
@Bumnote Bumnote self-assigned this Apr 22, 2025
@Bumnote Bumnote linked an issue Apr 22, 2025 that may be closed by this pull request
5 tasks
@Bumnote Bumnote merged commit f30dc43 into dev Apr 22, 2025
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.

[Feat] 회원 JWT 토큰과 비회원 임시 토큰 발급 구현

1 participant