사용자 토큰 재발급
사용자 정보를 조회하기 위해서는 access_token
이 반드시 필요합니다. 하지만 보안을 위해 access_token
의 유효 시간은 짧은 편이므로 필요한 경우에 refresh_token
을 이용하여 access_token
을 재발급 받을 수가 있습니다.
본 가이드에서는 refresh_token
을 이용하여 access_token
재발급하는 방법을 안내합니다.
1. 사용자 토큰 재발급
access_token
의 유효 시간은 1시간 이고 만료되면 더 이상 사용할 수 없습니다. refresh_token
을 사용하여 access_token
을 재발급 받을 수 있습니다.
refresh_token
은 30일 간 유효하며, 만료되기 전까지access_token
을 재발급 받을 수 있습니다.refresh_token
이 만료되면인가 코드와 사용자 토큰 받기
를 통해 새로운refresh_token
을 받아야 합니다.- 요청
Header
에는Authorization
헤더를 반드시 포함해야 합니다. Authorization 요청 헤더 살펴보기
1.1. 요청 정보
Authorization 요청 헤더
-
문법
Authorization: {type} {credentials}
-
type 인증 타입으로 "Basic"을 사용합니다.
-
credentials
- 등록된
Client ID
와Client Secret
가 콜론을 이용하여 합쳐집니다.{client_id}:{client_secret}
-
그 결과에 대한 문자열을
base64
로 인코딩합니다. -
예제
Authorization: Basic c2FtcGxlXzJGSWp5aEZKNXg6bExrMW5mTnhPRkNETWJiVVRoVDk5REY3TzZ4Z0w0ekNBVjQ0ZVR4eU4xST0=
요청 형식 및 예제
- 요청 형식
POST /wauth/token
Host: login.pre.wonders.app
Authorization: Basic {base64_encode({client_id}:{client_secret})}
- 요청 예제
curl -i -X POST \
'https://login.pre.wonders.app/wauth/token' \
-H 'Authorization: Basic c2FtcGxlXzJGSWp5aEZKNXg6bExrMW5mTnhPRkNETWJiVVRoVDk5REY3TzZ4Z0w0ekNBVjQ0ZVR4eU4xST0=' \
-d 'grant_type=refresh_token' \
-d 'refresh_token=9d014a98-b1cc-4b9a-bde5-5c14c1739d2f'
요청 파라미터
파라미터 | 설명 | 필수 여부 | 고정값 |
---|---|---|---|
grant_type | "refresh_token" 고정 | 필수 | refresh_token |
refresh_token | refresh_token 값 | 필수 |
1.2. 응답 정보
응답 형식 및 응답 예제
-
응답 형식 응답 Body는 JSON 객체로 전달됩니다.
-
응답 예제
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"access_token":"589d054f-9a98-4d12-88bc-7a62d5305cd0",
"token_type":"bearer",
"refresh_token":"1d342133-6148-4223-9870-b08b4403197d",
"expires_in":3599,
"scope":"public_profile"
}
응답 파라미터
파라미터 | 설명 |
---|---|
access_token | 사용자 정보 조회와 같은 API 요청 시에 필요한 access_token 입니다. |
token_type | 토큰 타입으로 "bearer" 타입을 사용합니다. |
refresh_token | 만료된 access_token 재발급을 위해 사용합니다. |
expires_in | access_token 만료 시간으로 단위는 초(second) 입니다. |
scope | 토큰이 접근 가능한 리소스의 범위입니다. |
에러 응답 형식 및 예제
HTTP/1.1 400
Content-Type: application/json;charset=UTF-8
{
"error": "invalid_grant",
"error_description": "Invalid refresh token: 9d014a98-b1cc-4b9a-bde5-5c14c1739d2f"
}
에러 응답 파라미터
파라미터 | 설명 |
---|---|
error | 사용자 토큰 요청 실패 시 전달되는 에러코드 |
error_description | 사용자 토큰 요청 실패 시 전달되는 에러메시지 |
에러 코드
error | 설명 | 오류 해결 방법 |
---|---|---|
invalid_token | access_token 이 유효하지 않거나 만기된 경우 |
access_token 재발급 |