Access Token 토큰 종류
Token Type | 발급 | 역할(Role) | 유효(Valid) |
Game User Access Token | Client | 사용자를 인증을 합니다. | 6시간(21600000ms) |
API Access Token | Server | 스토브 API 서버와 통신을 하기 위해, 서버 인증을 합니다. | 720시간(30일) |
Game User Access Token 소개
•
STOVE PC Client에서 PC_SDK에 StoveSDK_GetToken() 함수를 통해 얻은 토큰(이하 Game User Access Token)을 지칭합니다.
•
StoveSDK_GetToken() 함수를 통해 얻은 토큰은 두 가지입니다.
◦
게임 유저 엑세스 토큰(Game User Access Token) : 보안상의 이유로 권한 증명 역할을 하는 액세스 토큰으로 비교적 짧은 유효 기간(6시간)을 갖습니다.
▪
Game User Access Token 유효 기간은 6시간(21600000ms)이며, 만료 시간 이후에는 재발급이 필요합니다.
API Access Token 소개
•
발급된 API Access Token은 요청(request)에 사용됩니다.
•
발급된 토큰은`authorization` header에 포함해 전달해야 합니다.
•
API Access Token의 유효 기간은 30일 입니다.
•
유효 기간은 client_id 별로 변경 가능합니다.
•
주기적으로 API Access Token 발급 API를 호출하여 토큰을 갱신 하거나, "expires_in"을 저장해 만료 전 발급 API를 호출하여 토큰을 갱신 받을 것을 권장합니다.
•
API Access Token 발급 API 호출 시, 기존에 발급 토큰의 유효 기간이 남은 경우 기존 토큰을 전달하고, 30% 미만이 남았을 시, 신규 토큰을 발급해줍니다.
•
여러 대의 서버에서 같은 서버 토큰을 사용할 수 있으며, 각 서버 별로 API 호출 주기가 다를 것으로 예상하여 신규 토큰 발급 후에도 기존 토큰은 기존 유효 기간까지 사용 가능하도록 하였습니다.
주의사항
게임서버가 스토브 API 서버와 통신을 하기 위해서 인증(Authentication)이 필요하며 이때 API Access Token이 필요합니다.
API Access Token 유효 기간은 30일이며, 유효 기간 이후에는 재발급을 받아야 합니다.
API Access Token 발급
사전체크사항
•
API Access Token을 발급 받기 위한 Key 발급
◦
API Access Token 을 받기 위해서는 client_id, client_secret 값이 필요합니다.
◦
client_id, client_secret 값은 STOVE 스토어에 문의 부탁드립니다.
소개
•
API 액세스 토큰 발급 및 조회 합니다.
•
토큰 유효시간 설정 가능 (default : 30일)
•
기존 발급된 토큰의 유효시간의 70 퍼센트가 지난 경우는 신규 발급 처리합니다. ex) 유효시간 설정 60초 인 경우 토큰 유효시간 20초 까지는 기존 토큰 조회, 이 후 신규 토큰 발급합니다.
•
현재 발급된 모든 토큰은 유효시간까지 사용 가능합니다.
기본정보
POST /auth/v5/server_token
Host:
https://api.onstove.com (LIVE)
https://api.gate8.com (SB)
Content-Type: application/json
Plain Text
복사
Request
Header
Name | Type | Required | Default Value | Example | Description |
Content-Type | application/json |
Parameters
Name | Type | Required | Default Value | Example | Description |
client_id | String | Y | com.stove.test.server | 스토브 스토어 에 요청 | |
client_secret | String | Y | alkjsdf8jsf9n3onf78s9dhfjlk398f9hlksdfuihaoisdhf | 스토브 스토어에 요청 | |
service_id | String | Y | SGP_EVENT | 스튜디오에서 등록한 Game ID |
Response
Body
Name | Type | Required | Default Value | Example | Description |
code | int | Y | 0 | 응답 코드 | |
message | String | Y | success | 응답 메시지 | |
response_data | Object | N | 응답 값 |
response_data
Name | Type | Required | Default Value | Example | Description |
access_token | String | Y | sljdflksjd239ofmosdg98yfgoudfgfljsfoj3498klfbsdfgs98dfug;lkj== | ||
token_type | String | bearer | |||
expires_in | Integer | Y | 2591999 | 초 단위의 만료 시간 |
Sample
Request
curl --location --request POST 'https://api.onstove.com/auth/v5/server_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "com.sgp.event.server",
"client_secret": "4tqFNG5ysyBUa6rk-dS4CQ",
"service_id": "SGP_EVENT"
}'
Plain Text
복사
Response
Content-Type : application/json
{
"code": 0,
"message": "success",
"response_data": {
"access_token": "-LEn5c7a9L-PaLuOYh8qiyBZOLhTJ6U3oesa1USdf9zhYLwrM6gVEPoedM-QqkT8tskTm0u9-1QhoEdrznCHC_nWHBQ46oVnwBdV9I69bihX8Rzntm3Gv-qTVQrYJG5trLAdcgVInhPGJRYy_t944APpkXtaXWzvfd2tvMsFT08",
"token_type": "bearer",
"expires_in": 2591999
}
}
JSON
복사
응답 실패 예제
{
"code": 40105,
"message": "invalid client"
}
JSON
복사
Return Code
HTTP Status code | Code | Message | Description |
200 | 0 | success | 성공 |
401 | 40105 | No client found | invalid client |
Game User Access Token 유효성 검증
Game User Access Token 검증 소개
•
Client가 Game Server에 Game User Access Token을 전달하면 Game Server는 이를 다시 STOVE Platform(Auth Server)에 전달해 유효한 Token인지 확인하는 인증 과정을 거칩니다.
•
본 인증과정에서 API Access Token을 Header에 포함시켜야 하며, API Access Token이 없는 경우, API Access Token 발급 API 를 통해 발급받아야 합니다.
기본정보
POST /member/v3.0/{game_id}/token/verify
Host:
https://api.onstove.com (LIVE)
https://api.gate8.com (SB)
Content-Type: application/json
Plain Text
복사
Request
Header
Name | Type | Required | Default Value | Example | Description |
Authorization | String | Y | - | Bearer {{api_access_token} | |
Content - Type | application/json |
Body
Name | Type | Required | Default Value | Example | Description |
access_token | String | Y | - | {Access Token} | 사용자의 인증을 통해 발급 되는 user access token |
Response
Body
Name | Type | Required | Default Value | Example | Description |
code | int | Y | 0 | 응답 코드 | |
message | String | Y | success | 응답 메시지 | |
value | Object | N | 응답 값 |
value
Name | Type | Required | Default Value | Example | Description |
member_no | Long | Y | 20005061986 | STOVE 정회원 번호 | |
guid | Long | N | 200000000397 | 게임별로 사용하는 고유 회원 번호게임약관 동의 시 생성 됩니다. |
Sample
Request
curl -L -X POST 'https://api.onstove.com/member/v3.0/MVP_SDK_QA/token/verify' \
-H 'Authorization: Bearer Es_ulMUjO7OHmk8WfiPE0-zQAppdPEyye6rRRmrZKkw3sdN38bTYANAsco_0kOHc4EPNPGQHKzV4B080JLd1smLs7YkFwpDOwEKi0aqX_qOa7_LVTl-9jvrWfiYQ-XqiUu7HGScjAWth0_K_CXwsdnvogSf3yE3oRSUvD66obgg' \
-H 'Content-Type: application/json' \
--data-raw '{
"access_token": "eyJhbGciOiJIUzI1NiJ9.eyJleHBpcmVfdGltZSI6MTY2MzkyNDQwNzQxNywibWVtYmVyX25vIjoyMDAwNTA2MTk4NiwiYXBwbGljYXRpb25fbm8iOjEwMDAyfQ.lVXx2gL-7keAs42wFDZLS-coqkSUFIAli3Opq4Is34K7ZgnpnneHJx15ofczp3Ep0ogEggRm5WNOungptQqdZy3WbNcMg-0-6MDv2x1QG-MseSAxS1hNZ5TLeDx6emSdSkAsqcp1f6kqnqRX1Hp8oTqPB-UKMQOzx91ox5cbF5KnmaKcf6VZ7tUtaDvCSxS1Ec3xda7iQCBrtgT8wmbppdkcSV2Z7AQbpP8gVnX9-I0_ZHpXroz6nzujdK8DUCJqD7cW5R5nTwMedW5pndqzzQ"
}'
Plain Text
복사
Response
Content-Type : application/json
{
"code": 0,
"message": "success",
"value": {
"member_no": 20005061986,
"guid": 200000000397
}
}
Plain Text
복사
응답 실패 예제
{
"code": 40000,
"message": "bad request"
}
Plain Text
복사
Return Code
HTTP Status code | Code | Message | Description |
200 | 0 | Success | 성공 |
200 | 40000 | bad request | 잘못된 파라미터
- 토큰 전달 누락
- authorization 해더에 user_access_token을 사용한 경우 |
401 | 40101 | invalid token | server access token 오류 |
200 | 41002 | Invalid game id | 잘못된 game_id
- 토큰 내 게임id와 요청 게임id가 다른 경우 |