-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Labels
Description
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 인증 테스트 성공
Reactions are currently unavailable