logo

Access Token 받기

이전에 받은 code를 이용해 Access token을 요청할 수 있습니다.
만약 전달 받은 code가 없을 시 오류처리 해주시기 바랍니다.

POST https://auth.smtown.com/oauth/token
Authorization: Basic MGYxOWYxNG==
Content-Type: application/x-www-form-urlencoded

code=Hs56CB&grant_type=authorization_code&scope=profile.info&redirect_uri=http://localhost:8080/popup/callback
파라메타 필수여부 설명
Authorization Header 필수 Basic token 입니다. Basic token 생성을 참고하세요.
Content-Type Header 필수 POST의 content type 설정 : application/x-www-form-urlencoded 고정
code 필수 이전에 전달받은 code 값입니다.
grant_type 필수 authorization_code로 고정
scope 필수 사용자 동의가 필요한 리소스의 범위입니다. 공백으로 구분할 수 있습니다.
redirect_uri 필수 code를 요청할 시 사용된 redirect_uri 입니다.
성공 응답
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
    "access_token": "2a324609ec94f18d614d4bc425de754",
    "token_type": "bearer",
    "refresh_token": "0f244a6ff13c8fcf20bb6bab5fc6f",
    "expires_in": 43199,
    "scope": "profile.info"
}
파라메타 설명
access_token 액세스 토큰입니다. 앱은 이 토큰을 사용하여 웹 API에 인증할 수 있습니다.
token_type 토큰 유형 값입니다. 모든 API에서 bearer형식만 지원합니다.
refresh_token access_token이 만료된 후 이 토큰을 사용하여 다른 액세스 토큰을 얻을 수 있습니다. 약 30일간의 유효기간이 존재합니다.
expires_in access_token의 유효 기간(초) 입니다.
scope access_token을 이용해 리소스를 요청할 때 사용되는 리소스의 범위입니다.
만약 client에서 profile.info stamp fanclub 3가지를 요청했으나 사용자가 profile.info 만 허용했을 경우 profile.info 만 반환합니다.
client에서는 이를 참고하여 요청 된 scope와 사용자가 허용한 scope를 비교하여 처리하시면 됩니다.

자세한 scope의 범위는 Scopes 문서를 참조하세요.
실패 응답
HTTP/1.1 400
Content-Type: application/json;charset=UTF-8
{
    "error": "invalid_grant",
    "error_description": "Invalid authorization code: Hs56CB"
}
샘플 - 에러처리 (STATE 검증, CODE 확인)

악의적인 접근 또는 공격을 방지하기 위해 가급적 state, code를 검증해주세요.

샘플 - Access Token 요청