feat: 토큰 갱신 및 로그아웃 API 구현 (#38) #39

Merged
seonkyu.kim merged 1 commits from feature/#38-session-token-management into develop 2026-02-09 14:17:48 +00:00
Owner

📋 작업 요약

Refresh Token을 사용한 토큰 갱신(Token Rotation) 및 로그아웃 API를 구현합니다.

Closes #38

🛠️ 작업 내용 (Changes)

Application Layer

  • TokenRefreshRequestDto.cs — 토큰 갱신 요청 DTO
  • TokenRefreshResponseDto.cs — 토큰 갱신 응답 DTO
  • IAuthService.cs — RefreshTokenAsync, LogoutAsync 추가
  • AuthService.cs — 토큰 갱신/로그아웃 로직 구현
    • Token Rotation (새 Refresh Token 발급)
    • Refresh Token 만료 검증
    • 로그아웃 시 Refresh Token 무효화

Infrastructure Layer

  • IAdminRepository.cs — GetByRefreshTokenAsync 추가
  • AdminRepository.cs — GetByRefreshTokenAsync 구현

API Layer

  • AuthController.cs — 2개 엔드포인트 추가
    • POST /v1/in/auth/token/refresh — 토큰 갱신 (AllowAnonymous)
    • POST /v1/in/auth/logout — 로그아웃 (Authorize)

📢 리뷰어 참고 사항 (To Reviewers)

  • Refresh Token Rotation 패턴을 적용하여 보안을 강화했습니다
  • 로그아웃 시 JWT 클레임에서 adminId를 추출하여 사용합니다
  • Admin 엔티티의 RefreshToken, RefreshTokenExpiresAt 필드는 이미 존재합니다

체크리스트 (Self Checklist)

  • 코드 빌드 성공
  • 코딩 규칙 준수 (async/await, ApiResponse 사용)
  • Swagger 어노테이션 적용
  • Swagger UI 테스트

📸 스크린샷 / 테스트 로그 (Screenshots/Logs)

빌드 성공 확인됨

## 📋 작업 요약 Refresh Token을 사용한 토큰 갱신(Token Rotation) 및 로그아웃 API를 구현합니다. ## 🔗 관련 이슈 (Related Issues) Closes #38 ## 🛠️ 작업 내용 (Changes) ### Application Layer - `TokenRefreshRequestDto.cs` — 토큰 갱신 요청 DTO - `TokenRefreshResponseDto.cs` — 토큰 갱신 응답 DTO - `IAuthService.cs` — RefreshTokenAsync, LogoutAsync 추가 - `AuthService.cs` — 토큰 갱신/로그아웃 로직 구현 - Token Rotation (새 Refresh Token 발급) - Refresh Token 만료 검증 - 로그아웃 시 Refresh Token 무효화 ### Infrastructure Layer - `IAdminRepository.cs` — GetByRefreshTokenAsync 추가 - `AdminRepository.cs` — GetByRefreshTokenAsync 구현 ### API Layer - `AuthController.cs` — 2개 엔드포인트 추가 - `POST /v1/in/auth/token/refresh` — 토큰 갱신 (AllowAnonymous) - `POST /v1/in/auth/logout` — 로그아웃 (Authorize) ## 📢 리뷰어 참고 사항 (To Reviewers) - Refresh Token Rotation 패턴을 적용하여 보안을 강화했습니다 - 로그아웃 시 JWT 클레임에서 adminId를 추출하여 사용합니다 - Admin 엔티티의 RefreshToken, RefreshTokenExpiresAt 필드는 이미 존재합니다 ## ✅ 체크리스트 (Self Checklist) - [x] 코드 빌드 성공 - [x] 코딩 규칙 준수 (async/await, ApiResponse 사용) - [x] Swagger 어노테이션 적용 - [ ] Swagger UI 테스트 ## 📸 스크린샷 / 테스트 로그 (Screenshots/Logs) 빌드 성공 확인됨
seonkyu.kim added 1 commit 2026-02-09 14:09:52 +00:00
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
seonkyu.kim added the
Priority
High
Status
In Progress
Type
Feature
labels 2026-02-09 14:10:02 +00:00
seonkyu.kim added this to the Phase 2-1: 인증 & 계정 & 서비스 API milestone 2026-02-09 14:10:05 +00:00
seonkyu.kim self-assigned this 2026-02-09 14:10:15 +00:00
seonkyu.kim requested review from Owners 2026-02-09 14:10:20 +00:00
seonkyu.kim merged commit 5eb3635719 into develop 2026-02-09 14:17:48 +00:00
seonkyu.kim deleted branch feature/#38-session-token-management 2026-02-09 14:18:04 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-09 14:18:29 +00:00
Sign in to join this conversation.
No description provided.