Main API토큰 API
POST /auth/refreshToken
Access Token 재발급
Access Token 재발급
401 토큰 만료 에러 발생 시 Access Token 및 Refresh Token을 재발급합니다.
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /auth/refreshToken |
| 인증 | Refresh Token |
Authorization 헤더에 Access Token이 아닌 Refresh Token을 전달해야 합니다.
요청
POST /auth/refreshToken HTTP/1.1
Host: api.glowb.com
Authorization: Bearer \{refresh_token\}curl -X POST "https://api.glowb.com/auth/refreshToken" \
-H "Authorization: Bearer \{refresh_token\}"const response = await fetch('/auth/refreshToken', {
method: 'POST',
headers: {
'Authorization': `Bearer ${refreshToken}`
}
});
const data = await response.json();
// 새 토큰으로 저장소 업데이트
localStorage.setItem('accessToken', data.accessToken);
localStorage.setItem('refreshToken', data.refreshToken);요청 헤더
| 헤더 | 필수 | 설명 |
|---|---|---|
Authorization | 예 | Bearer {refresh_token} 형식 |
응답
성공 응답 (200 OK)
{
"id": "user_id",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isNewUser": false
}Response 스키마 (TokenDto)
Prop
Type
에러 응답 (401 Unauthorized)
토큰 갱신 실패 시 다음 형식으로 에러가 반환됩니다:
{
"status": 401,
"code": "ERROR_CODE",
"message": "에러 메시지",
"data": null
}에러 코드
| 에러 코드 | 설명 | 프론트엔드 처리 |
|---|---|---|
TOKEN_INVALID | 토큰 서명이 유효하지 않음 (위조되었거나 손상됨) | 로그인 페이지로 이동 |
REFRESH_TOKEN_EXPIRED | Redis에 저장된 토큰이 없거나 불일치 (세션 만료) | "세션이 만료되었습니다" 메시지 표시 후 로그인 페이지로 이동 |
중요: 401 에러 발생 시 code 필드를 확인하여 적절한 처리를 해야 합니다. 무한 로딩을 방지하려면 401 에러 시 반드시 로그아웃 처리가 필요합니다.
토큰 만료 정책
| 토큰 유형 | 만료 시간 |
|---|---|
| Access Token | 14일 |
| Refresh Token (JWT) | 21일 |
| Refresh Token (Redis TTL) | 30일 |
JWT 만료 후에도 Redis TTL 내(최대 9일)라면 토큰 갱신이 가능합니다.