사용자 로그아웃 API
사용자 로그아웃 API는 현재 로그인된 사용자의 세션을 안전하게 종료하고 관련 토큰들을 무효화하는 과정을 처리합니다.
사용자 로그아웃
사용자의 액세스 토큰과 리프레시 토큰을 모두 무효화하여 세션을 안전하게 종료합니다.
- HTTP Method:
POST - Path:
v1/auth/logout - 인증: 필요 (Bearer Access Token)
Headers
| Header | Type | Description | Required |
|---|---|---|---|
Content-Type | application/json | 요청 본문 형식을 지정합니다. | Yes |
Authorization | Bearer <token> | 사용자의 유효한 액세스 토큰을 포함해야 합니다. | Yes |
Accept-Language | Language Code | 사용자 선호 언어를 지정합니다. 지역 코드를 포함한 형식만 지원합니다. | No |
Responses
| HTTP Status Code | 설명 | Error Code(s) |
|---|---|---|
200 OK | 로그아웃 성공 | - |
401 Unauthorized | 인증 실패 (예: 유효하지 않거나 만료된 토큰) | 2051, 2003 |
500 Internal Server Error | 서버 내부 오류 | 2000 |
200 OK - 로그아웃 성공
성공적으로 로그아웃하면 성공 여부를 나타내는 boolean 값이 반환됩니다.
{
"success": true
}
| 필드 | 타입 | 설명 | 예시 | 필수 (Yes/No) |
|---|---|---|---|---|
success | boolean | 로그아웃 성공 여부 | true | Yes |
401 Unauthorized - 인증 실패
예시: 유효하지 않은 액세스 토큰
{
"code": 2051, // AuthErrorCode.INVALID_TOKEN
"message": "INVALID_TOKEN",
"detail": "토큰이 유효하지 않습니다."
}
이 오류는 제공된 액세스 토큰이 유효하지 않은 경우 발생합니다. (예: 형식 오류, 서명 불일치, 이미 무효화됨 등). InvalidTokenError에 해당합니다.
예시: 액세스 토큰 만료
{
"code": 2003, // AuthErrorCode.ACCESS_TOKEN_EXPIRED
"message": "ACCESS_TOKEN_EXPIRED",
"detail": "액세스 토큰이 만료되었습니다."
}
이 오류는 제공된 액세스 토큰이 만료되었을 때 발생합니다. AccessTokenExpiredError에 해당합니다.
500 Internal Server Error - 서버 내부 오류
{
"code": 2000, // AuthErrorCode.SERVER_ERROR
"message": "SERVER_ERROR",
"detail": "서버 내부 오류"
}
이 오류는 로그아웃 처리 중 예기치 않은 서버 내부 문제가 발생했을 때 반환될 수 있습니다. ServerError에 해당합니다.
설명
- 이 API는 사용자의 현재 세션을 안전하게 종료하고 관련된 모든 토큰을 무효화합니다.
- 주요 처리 단계:
- 요청 헤더에서 액세스 토큰 추출 및 유효성 검증.
- 토큰에서 사용자 정보 추출.
- 토큰 스테이징 처리 (AUT-FR-BE-029):
- 현재 액세스 토큰을
:staging상태로 전환. :staging상태의 토큰을 Redis 캐시에set형태로 저장.- TTL(Time-to-Live)을 5분으로 설정
- 현재 액세스 토큰을
- 사용자와 연관된 모든 리프레시 토큰 무효화.
- 데이터베이스에서 토큰 상태를
REVOKED로 업데이트. - 응답 반환.
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-09-12 | bok@weltcorp.com | 최초 문서 작성 - 토큰 스테이징 정책 (AUT-FR-BE-029) 반영 |
| 0.1.1 | 2025-09-15 | bok@weltcorp.com | 응답 구조를 실제 구현에 맞게 수정 (success boolean 필드) |