Skip to content

로그아웃 API 구현 #28

@wooxexn

Description

@wooxexn

1. 구분

  • BackEnd
  • Infra
  • ETC

2. 대분류

  • feat
  • refactor
  • settings
  • etc

3. 작업의 주 내용에 대해서 작성해주세요

로그아웃 API 개발 - JWT 토큰 무효화 및 멱등성 보장

4. 세부 작업에 대해서 작성해주세요

로그아웃 응답 DTO 구현

  • LogoutResponseDto 생성 (로그아웃 성공 메시지 및 타임스탬프)
  • ISO 형식 타임스탬프 자동 생성

로그아웃 서비스 로직 구현

  • UserService.logout() 메서드 구현
  • 인증된 사용자 ID 기반 로그아웃 처리
  • 리프레시 토큰 무효화 (DB에서 해당 사용자 토큰 삭제)
  • 멱등성 보장 (이미 로그아웃된 상태여도 성공 응답)
  • 액세스 토큰 자연 만료 처리 (15분 짧은 만료시간)

API 컨트롤러 구현

  • UserController에 logout() 메서드 추가
  • POST /v1/users/logout 엔드포인트 구현
  • JWT 토큰 기반 사용자 인증 (@AuthenticationPrincipal)
  • Authorization 헤더에서 자동 사용자 정보 추출
  • 인증된 사용자만 접근 가능하도록 보안 설정

보안 및 토큰 관리

  • Spring Security 연동 (JWT 필터 통과 필수)
  • 사용자별 리프레시 토큰 무효화 (다른 사용자 영향 없음)
  • deleteByUser() 메서드 활용한 안전한 토큰 삭제
  • 탈퇴한 사용자 처리 (null 체크 및 멱등성 유지)

테스트 및 검증

  • 포스트맨 Bearer Token 인증 테스트 성공

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions