콘텐츠로 이동

토큰 검증

앱 클라이언트에서 로그인 성공 후 반환된 PlayerInfo의 토큰, Player ID, Device ID를 사용하여, 앱 서버에서 해당 사용자의 토큰 유효성을 검증합니다.

토큰 검증 API는 앱 서버에서 Hive 인증 서버로 직접 호출하는 Server-to-Server 통신 방식으로 동작하며, 앱에서 중복 로그인을 허용하지 않는 경우에 한해 검증된 토큰을 관리하거나 앱 자체 세션 키를 활용한 세션 관리 기능을 구현할 수 있습니다.


Request URL

상용 URL https://auth.qpyou.cn/v2/game/token/get-token
분산환경 URL https://auth.globalwithhive.com/v2/game/token/get-token
Sandbox URL https://sandbox-auth.qpyou.cn/v2/game/token/get-token
HTTP Method POST
Content-Type application/json
Data Format JSON
Note

Hive 인증 서버는 장애가 발생하거나 네트워크 통신이 원활하지 않을 경우에 대비하여 분산 환경 기반으로 구성됩니다.
인증 서버 호스트와의 통신 중 장애가 발생하거나 앱 서버에 정의된 타임아웃(Timeout) 시간을 초과하는 경우, 앱 서버에서 직접 분산 환경 URL(Fallback URL)을 호출해야 합니다.


Request header

필드명 설명 타입 필수여부
Authorization 게임 클라이언트 로그인 성공 후 반환된 사용자 토큰 (PlayerInfo.token) String Y
X-Access-Token 게임 클라이언트 로그인 성공 후 반환된 User Token
플레이어 본인 인증을 위한 OAuth 2.0 Access Token
String Y
ISCRYPT 데이터 암호화 여부 (0= 암호화 안 함) (무조건 0으로 전달) Integer Y


Request Body

필드명 설명 타입 필수여부
appid App ID String Y
did 로그인 성공 후 반환된 Device ID String Y
player_id 로그인 성공 후 반환된 인증 Player ID BigInteger Y
include_fields 추가 필드 목록 응답 시 추가 정보를 요청할 필드 목록 Array N
Note

include_fields 파라미터를 통해 선택적으로 추가 정보를 반환할 수 있습니다. 토큰 검증하기 요청 시 include_fields 배열에 명시된 필드값을 기반으로 응답의 data 하위에 해당 정보가 포함됩니다.

추가 필드 목록

필드명 설명 타입
is_blocked 이용 제한 여부 (true - 제재, false - 정상) Boolean
is_device_registered 기기 관리 사용 여부 (true - 사용, false - 미사용) Boolean
join_timestamp player_id 가입일 (Unix Timestamp) Long
china_pi_no 중국 실명 인증 번호. 실명 인증이 완료되지 않은 경우 null 반환 String / null


Response Body

필드명 설명 타입
result_code 응답 코드, 0=검증 성공 Integer
result_msg 결과 메시지 String
token_validation JWT 검증 결과 (JWT 검증 에러) Object
token_validation.result_code JWT 검증 결과 코드 Integer
token_validation.result_msg JWT 검증 결과 메시지 String
data 요청 시 include_fields에 명시된 정보가 포함된 객체 Object

응답 코드

코드값 설명
0 성공
2300 환불 사용자 재결제 대상
4000 유효하지 않은 파라미터
4001 request json 에러
2499 JWT 검증 실패 (token_validation 참고)
5000 DB 에러
6000 유효하지 않는 appid
6001 IDP 토큰 에러
7000 유효하지 않은 토큰
7001 header에 토큰값 없음
9999 알 수 없는 오류


Request example

{
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "did": "255764404509548",
    "player_id": 10000000000
}

include_fields

{
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "did": "255764404509548",
    "player_id": 10000000000,
    "include_fields": ["is_blocked", "is_device_registered", "join_timestamp", "china_pi_no"]
}


Response example

성공

{
    "result_code": 0,
    "result_msg": "SUCCESS",
    "token_validation": {
        "result_code": 0,
        "result_msg": "success"
    }
}

JWT 검증 실패

{
    "result_code": 2499,
    "result_msg": "JWT validation failed. See token_validation for details.",
    "token_validation": {
        "result_code": 2408,
        "result_msg": "The access token is expired. Please refresh your token."
    }
}

include_fields

{
    "result_code": 0,
    "result_msg": "SUCCESS",
    "token_validation": {
        "result_code": 0,
        "result_msg": "success"
    },
    "data": {
        "is_blocked": false,
        "is_device_registered": false,
        "join_timestamp": 1495594605,
        "china_pi_no": null
    }
}
Note

JWT 검증 실패 시, token_validation 필드로 상세 에러 정보를 확인할 수 있습니다. 자세한 내용은 JWT 검증 에러 코드를 참고하세요.