コンテンツにスキップ

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 を確認できます。

リクエストURL

本番URL https://auth.qpyou.cn/v2/game/auth/signinidp
サンドボックス URL 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_tokentrue に設定して、応答ヘッダーで Authorization 値を受け取ります。アカウント削除機能を使用しない場合は、false に設定してください。

応答ヘッダー

フィールド名 説明 タイプ
Authorization セッショントークン。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 を既存のプレーヤー アカウントにリンクします。 IdP リンクは、プレーヤー ID が作成された後にのみ使用できます。

リクエストURL

本番URL https://auth.qpyou.cn/v2/game/auth/connect
サンドボックス URL 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 { #disconnect } のリンクを解除

プレーヤー アカウントにリンクされている IdP のリンクを解除します。 IdP のリンク解除は、プレーヤー ID が作成された後にのみ使用できます。

リクエストURL

本番URL https://auth.qpyou.cn/v2/game/auth/disconnect
サンドボックス URL 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 検証エラーコードを参照してください。