인증 API로 사용자 정보 조회¶
웹 로그인 완료 후, 별도로 사용자 정보를 확인해야 하는 경우에 요청하는 API입니다.
'인증 API로 사용자 정보 조회' API는 앱 서버에서 Hive 인증 서버로 직접 호출하는 Server-to-Server 통신 방식으로 동작하며, 로그인 검증 및 사용자 정보 조회 API의 응답 값인 appid, idp_index, idp_user_id를 사용하여 IdP에 해당하는 사용자 정보를 반환합니다.
Request URL¶
| 상용 URL | https://auth.qpyou.cn/v2/game/player/get-playerid |
|---|---|
| 분산환경 URL | https://auth.globalwithhive.com/v2/game/player/get-playerid |
| Sandbox URL | https://sandbox-auth.qpyou.cn/v2/game/player/get-playerid |
| HTTP Method | POST |
| Content-Type | application/json |
| Data Format | JSON |
Note
Hive 인증 서버는 장애가 발생하거나 네트워크 통신이 원활하지 않을 경우에 대비하여 분산 환경 기반으로 구성됩니다.
인증 서버 호스트와의 통신 중 장애가 발생하거나 앱 서버에 정의된 타임아웃(Timeout) 시간을 초과하는 경우, 앱 서버에서 직접 분산 환경 URL(Fallback URL)을 호출해야 합니다.
Request header¶
| 필드명 | 설명 | 타입 | 필수여부 |
|---|---|---|---|
| X-Access-Token | 앱 서버 인증을 위한 OAuth 2.0 Access Token (OAuth Token 발급하기 참고) | String | Y |
| ISCRYPT | 데이터 암호화 여부 (0 = 암호화 안 함) (무조건 0으로 전달) | Integer | Y |
Request body¶
| 필드명 | 설명 | 타입 | 필수여부 |
|---|---|---|---|
| appid | App ID | String | Y |
| idp_index | IdP 인덱스 IdP 리스트 | Integer | Y |
| idp_user_id | IdP 고유 식별자 | String | Y |
Request example¶
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"idp_index": 1,
"idp_user_id": "68101398"
}
Response body¶
| 필드명 | 설명 | 타입 |
|---|---|---|
| result_code | 응답 코드 자세히 | Integer |
| result_msg | 결과 메시지 | String |
| token_validation | JWT 검증 결과 (JWT 검증 에러) | Object |
| token_validation.result_code | JWT 검증 결과 코드 | Integer |
| token_validation.result_msg | JWT 검증 결과 메시지 | String |
| data | 결과 데이터 | Object |
| data.enc_idp | Request Body 정보를 암호화한 키 | String |
| data.player_id | Player ID | BigInteger |
| data.list | 연동된 IdP 리스트 | Array |
| data.list[].seq | 연동된 IdP 리스트 - Seq | BigInteger |
| data.list[].player_id | 연동된 IdP 리스트 - Player ID | BigInteger |
| data.list[].idp_user_id | 연동된 IdP 리스트 - IdP 고유 식별자 | String |
| data.list[].idp_index | 연동된 IdP 리스트 - IdP 인덱스 IdP 리스트 | Integer |
| data.list[].idp_id | 연동된 IdP 리스트 - IdP 아이디 | String |
| data.is_blocked | 이용 정지 여부 | Boolean |
| data.is_refund | 환불 사용자 재결제 대상 여부 | Boolean |
응답 코드¶
| 코드값 | 설명 |
|---|---|
| 0 | 성공 |
| 2002 | 사용자 데이터 없음 |
| 2499 | JWT 검증 실패 (token_validation 참고) |
| 4000 | 유효하지 않은 요청 파라미터 |
Response example¶
성공 (사용자 정보 존재)¶
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"enc_idp": "K+A4xduO7kf5OrJ/iDPqL0PtMxwu7wW8JSBO+JJwSDDmJLvIi/6LG7TyWXdEHr9RNHM+/QXwc0+Y9z2eSRg7oeBBHmpOajzF1iiaacbFom4CsNy2fItendset7T0i0WYdyLQih3z5mDjcct47+gg2ovbp6kWRY8D+aGq+ZgaKiyr0Hmb1xmbWY/7cl1FjXTm0Nl9CWhO418bJFdwOpi+bw==",
"player_id": 20000016588,
"list": [
{
"seq": 25771,
"player_id": 20000016588,
"idp_user_id": "68101398",
"idp_index": 1,
"idp_id": "HIVE"
},
{
"seq": 25772,
"player_id": 20000016588,
"idp_user_id": "0",
"idp_index": 0,
"idp_id": "GUEST"
}
],
"is_blocked": false,
"is_refund": false
}
}
성공 (사용자 정보 없음)¶
{
"result_code": 2002,
"result_msg": "No User",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"enc_idp": "K+A4xduO7kf5OrJ/iDPqLyCHfP+L3wz0WTNVw5KHLCqYjqQ+shQ2P3mkgwYCMvlnPatzlSE5ZFINr5gEIxK14sg0N8kOPSjSCeQ9UGGt11OMrYsGTuys0KmPJ2ZU/UWVVxpP1Lxx1eS8VbYwLmoTG+HTw2vkocghs/ZOZ9rqisdBRprhp6Q6+lIjpaUzDa2yy2guM1WheuVzKGL5331HHgo557RqoyUzTc6Lkf8ArWZ/XSwi3ZmStmhz/U4thcIwiowqgV+Ecdb2+WmMZ1MgGT4Xvbxa4lqzToBC3nxDvi1d8TjgMaszVYoNct94WPBGvV6emg3GqiJG+0ZTGg53+mZad9ttkUpTnQXetz5UDTxe5NnFAYfffzBq3jkqfAB042eH21rE3uTVJq3HuO8i9t1LJwKFfkC7sjjuaKNWsjs="
}
}
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."
}
}
실패¶
{
"result_code": 4000,
"result_msg": "Request has invalid format.",
"data": "appid, idp_user_id, idp_index"
}
Note
JWT 검증 실패 시, token_validation 필드로 상세 에러 정보를 확인할 수 있습니다. 자세한 내용은 JWT 검증 에러 코드를 참고하세요.