콘텐츠로 이동

사용자 토큰 재발급

사용자 정보를 조회하기 위해서는 access_token이 반드시 필요합니다. 하지만 보안을 위해 access_token의 유효 시간은 짧은 편이므로 필요한 경우에 refresh_token을 이용하여 access_token을 재발급 받을 수가 있습니다.

본 가이드에서는 refresh_token을 이용하여 access_token 재발급하는 방법을 안내합니다.

1. 사용자 토큰 재발급

access_token의 유효 시간은 1시간 이고 만료되면 더 이상 사용할 수 없습니다. refresh_token을 사용하여 access_token을 재발급 받을 수 있습니다.

  • refresh_token30일 간 유효하며, 만료되기 전까지 access_token을 재발급 받을 수 있습니다.
  • refresh_token이 만료되면 인가 코드와 사용자 토큰 받기를 통해 새로운 refresh_token을 받아야 합니다.
  • 요청 Header에는 Authorization 헤더를 반드시 포함해야 합니다. Authorization 요청 헤더 살펴보기

1.1. 요청 정보

Authorization 요청 헤더

  • 문법

    Authorization: {type} {credentials}

  • type 인증 타입으로 "Basic"을 사용합니다.

  • credentials

  • 등록된 Client IDClient 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 재발급