Skip to content

Feature/auth jwt system#21

Merged
ekfrehd merged 4 commits intodevelopfrom
feature/auth-jwt-system
Dec 19, 2025
Merged

Feature/auth jwt system#21
ekfrehd merged 4 commits intodevelopfrom
feature/auth-jwt-system

Conversation

@ekfrehd
Copy link
Contributor

@ekfrehd ekfrehd commented Dec 19, 2025

🔍 PR 타입 선택

아래 타입 중 해당하는 하나를 선택해 주세요. 반드시 하나만 선택해 주세요.

  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 수정
  • style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • refactor: 코드 리팩토링
  • test: 테스트 코드 추가 또는 수정
  • chore: 빌드 업무 수정, 패키지 매니저 수정 등 기타 작업

📝 변경 사항 요약

Auth 서비스의 핵심 인증 시스템인 **소셜 로그인(OAuth2)**과 **JWT 기반 인증/인가를 구현
특히 사용자 편의성과 보안을 위해 Silent Refresh (토큰 자동 재발급)RTR (Refresh Token Rotation) 전략 적용

🌟 주요 구현 내용

  1. 인증/인가 시스템 (Authentication)

    • JWT Provider: RSA 비대칭키 서명 방식 적용 및 검증 로직(parseClaims) 구현
    • OAuth2: Google, Kakao, Naver 소셜 로그인 연동 및 SuccessHandler를 통한 보안 쿠키(HttpOnly) 발급
  2. 보안 및 토큰 전략 (Security Strategy)

    • Silent Refresh: POST /auth/reissue API를 구현하여, 프론트엔드에서 쿠키를 통해 조용히 토큰을 갱신할 수 있도록 지원
    • RTR (Refresh Token Rotation): 재발급 시 기존 Refresh Token을 폐기하고 교체하여 탈취된 토큰의 재사용 방지
  3. 테스트 코드 (Tests)

    • AuthServiceTest: 토큰 검증, DB 조회, 정보 추출, RTR 로직 단위 테스트
    • AuthControllerTest: @WebMvcTest를 활용한 API 통합 테스트 (Cookie 설정, JSON 응답 검증)

🛠 관련 이슈

Resolves: #22
Ref: #
Related to: #
close: #

추가 설명 (선택 사항)

🧪 테스트 실행 결과

AuthServiceAuthController 테스트가 모두 성공적으로 통과했습니다.

> Task :test
MockHttpServletResponse:
    Status = 200
    Headers = [Set-Cookie:"refreshToken=new-refresh; Path=/; HttpOnly; Secure; ..."]
    Body = {"success":true,"status":200,"data":{"accessToken":"new-access", ...}}

BUILD SUCCESSFUL in 10s
4 actionable tasks: 2 executed, 2 up-to-date

TueBack added 4 commits November 9, 2025 16:22
- build.gradle: oauth2-client, webflux 의존성 추가
- application.yml: 카카오, 구글 OAuth2 클라이언트 설정 추가
- Member 엔티티 및 관련 VO: provider, providerId, isVerified 등 소셜/인증 관련 필드 추가
- SecurityConfig: oauth2Login 설정 활성화 및 CustomOAuth2UserService 등록
- CustomOAuth2UserService: 소셜 사용자 정보 파싱 및 DB 저장/업데이트 로직 구현
- OAuthAttributes: 플랫폼별 사용자 정보 표준화 DTO 구현
@ekfrehd ekfrehd merged commit 4630f5e into develop Dec 19, 2025
1 check passed
@ekfrehd ekfrehd deleted the feature/auth-jwt-system branch December 19, 2025 21:10
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.

jwt 인증 시스템

1 participant