跳轉至

IdP 帳號管理

使用 IdP(身分提供者)憑證資訊建立和管理玩家帳戶。 「IdP 帳戶管理」API 透過伺服器到伺服器通訊進行操作,其中應用程式伺服器直接呼叫 Hive 驗證伺服器。它可用於多種用途,包括玩家 ID 建立、登入、IdP 連結和取消連結、在 Web 環境中實現登入以及遷移現有帳戶。

Note

此 API 不支援透過 Google、Meta 和 Apple 等外部身分驗證提供者進行使用者驗證或憑證取得。直接在應用程式用戶端中實現這些過程,並將結果傳遞到應用程式伺服器。

「IdP帳號管理」功能提供的API如下。 | API 端點 | 描述 | | --- | --- | | POST /v2/game/auth/signinidp | IdP 登入 | | POST /v2/game/auth/connect | 連結 IdP | | POST /v2/game/auth/disconnect | 解除 IdP 連結 |

IdP 登入

使用 IdP 資訊為新玩家建立玩家 ID,或如果 IdP 已註冊,則傳回現有玩家資訊。當IdP登入請求成功後,您可以在data.player_id中查看產生的玩家ID。

請求網址

生產網址 https://auth.qpyou.cn/v2/game/auth/signinidp
沙箱網址 https://sandbox-auth.qpyou.cn/v2/game/auth/signinidp
HTTP 方法 POST
Content-Type application/json
資料格式 JSON

請求頭

欄位名稱 描述 類型 必填
X-Access-Token 用於遊戲伺服器驗證的 OAuth 2.0 存取權杖
(請參閱 OAuth 權杖核發
String Y
ISCRYPT 資料是否加密(0 = 未加密;始終傳遞 0) Integer Y

請求正文

欄位名稱 描述 類型 必填
appid 應用程式 ID String Y
idp_index IdP 索引代碼。參見 IdP 索引參考 Integer Y
idp_user_id IdP 使用者唯一識別碼 String Y
require_token 是否請求玩家令牌。使用 帳號刪除 API 時的 truefalse 不使用時 Boolean Y
Note

若要使用 帳號刪除 API,請將 require_token 設定為 true 以接收回應標頭中的 Authorization 值。如果您不使用帳戶刪除功能,請將其設定為false

回應頭

欄位名稱 描述 類型
Authorization Session Token。僅在 require_token: true 時核發 String
Content-Type 回應資料格式(JSON)與字元編碼(UTF-8)資訊 String
ISCRYPT 回應是否加密 Integer

回應正文

欄位名稱 描述 類型
result_code 回應代碼 詳情 Integer
result_msg 結果留言 String
token_validation JWT 驗證結果 (JWT 驗證錯誤) Object
token_validation.result_code JWT驗證結果碼 Integer
token_validation.result_msg JWT 驗證結果訊息 String
data.player_id PlayerID BigInteger
data.idp_index IdP 指數 Integer
data.idp_id IdP 名稱 String
data.idp_user_id IdP 用戶 ID String

回應碼

代碼值 描述
0 成功
2499 JWT 驗證失敗(請參閱 token_validation)
4000 無效參數
4001 請求 JSON 錯誤
4200 不存在的 IdP
5000 內部伺服器錯誤
7000 無效令牌
7001 標頭中沒有標記值

請求範例

{
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "idp_index": 3,
    "idp_user_id": "google_67890",
    "require_token": true
}

回應範例

標題

HTTP/1.1 200
Content-Type: application/json; charset=UTF-8
Authorization: abcdf7ebce779429ea878f91d5f1c8
ISCRYPT: 0

成功

{
    "result_code": 0,
    "result_msg": "SUCCESS",
    "token_validation": {
        "result_code": 0,
        "result_msg": "success"
    },
    "data": {
        "player_id": 100000002,
        "idp_index": 3,
        "idp_id": "GOOGLE",
        "idp_user_id": "google_67890"
    }
}


連結 IdP

將新的 IdP 連結到現有玩家帳號。僅在建立玩家 ID 後,IdP 連結才可用。

請求網址

生產網址 https://auth.qpyou.cn/v2/game/auth/connect
沙箱網址 https://sandbox-auth.qpyou.cn/v2/game/auth/connect
HTTP 方法 POST
Content-Type application/json
資料格式 JSON

請求頭

欄位名稱 描述 類型 必填
X-Access-Token 用於遊戲伺服器驗證的 OAuth 2.0 存取權杖
(請參閱 OAuth 權杖核發
String Y
ISCRYPT 資料是否加密(0 = 未加密;始終傳遞 0) Integer Y

請求正文

欄位名稱 描述 類型 必填
appid 應用程式 ID String Y
idp_index IdP 索引代碼。參見 IdP 索引參考 Integer Y
idp_user_id IdP 使用者唯一識別碼 String Y
player_id PlayerID 連結 BigInteger Y

回應正文

欄位名稱 描述 類型
result_code 回應代碼 詳情 Integer
result_msg 結果留言 String
token_validation JWT 驗證結果 (JWT 驗證錯誤) Object
token_validation.result_code JWT驗證結果碼 Integer
token_validation.result_msg JWT 驗證結果訊息 String
data.player_id PlayerID BigInteger
data.idp_index 連結 IdP 索引 Integer
data.idp_id 連結的 IdP 名稱 String
data.idp_user_id IdP 用戶 ID String
#### 回應碼
代碼值 描述
--- ---
0 成功
1002 此 IdP 已連結到另一個玩家
1003 相同的 IdP 類型已連結
2002 不存在的玩家
2499 JWT 驗證失敗(請參閱 token_validation)
4000 無效參數
4200 不存在的 IdP
5000 內部伺服器錯誤
7000 無效令牌
7001 標頭中沒有標記值

請求範例

{
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "idp_index": 2,
    "idp_user_id": "fb_12345678",
    "player_id": 100000001
}

回應範例

成功

{
    "result_code": 0,
    "result_msg": "SUCCESS",
    "token_validation": {
        "result_code": 0,
        "result_msg": "success"
    },
    "data": {
        "player_id": 100000001,
        "idp_index": 2,
        "idp_id": "FACEBOOK",
        "idp_user_id": "fb_12345678"
    }
}

已連結至其他玩家

{
    "result_code": 1002,
    "result_msg": "Already connected other player",
    "token_validation": {
        "result_code": 0,
        "result_msg": "success"
    },
    "data": {
        "player_id": 100000002,
        "idp_index": 2,
        "idp_id": "FACEBOOK",
        "idp_user_id": "fb_12345678"
    }
}


取消連結 IdP

取消連結到玩家帳號的 IdP。僅在建立玩家 ID 後才可以使用 IdP 取消連結。

請求網址

生產網址 https://auth.qpyou.cn/v2/game/auth/disconnect
沙箱網址 https://sandbox-auth.qpyou.cn/v2/game/auth/disconnect
HTTP 方法 POST
Content-Type application/json
資料格式 JSON

請求頭

欄位名稱 描述 類型 必填
X-Access-Token 用於遊戲伺服器驗證的 OAuth 2.0 存取權杖
(請參閱 OAuth 權杖核發
String Y
ISCRYPT 資料是否加密(0 = 未加密;始終傳遞 0) Integer Y

請求正文

欄位名稱 描述 類型 必填
appid 應用程式 ID String Y
idp_index IdP 索引代碼。參見 IdP 索引參考 Integer Y
idp_user_id IdP 使用者唯一識別碼 String Y
player_id PlayerID 取消連結 BigInteger Y

回應正文

欄位名稱 描述 類型
result_code 回應代碼 詳情 Integer
result_msg 結果留言 String
token_validation JWT 驗證結果 (JWT 驗證錯誤) Object
token_validation.result_code JWT驗證結果碼 Integer
token_validation.result_msg JWT 驗證結果訊息 String
#### 回應碼
代碼值 描述
--- ---
0 成功
2499 JWT 驗證失敗(請參閱 token_validation)
4000 無效參數
4006 沒有連結的 IdP 資訊
4200 不存在的 IdP
7000 無效令牌
7001 標頭中沒有標記值

請求範例

{
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "idp_index": 2,
    "idp_user_id": "fb_12345678",
    "player_id": 100000001
}

回應範例

成功

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

當JWT驗證失敗時,您可以在token_validation欄位中查看詳細的錯誤訊息。詳細資訊請參閱JWT 驗證錯誤代碼