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 リクエストヘッダー フィールド名 説明 タイプ 必須 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 を使用する場合は true。 false 使用しない場合 Boolean Y
Note アカウント削除 API を使用するには、require_token を true に設定して、応答ヘッダーで 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 リクエストヘッダー フィールド名 説明 タイプ 必須 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 リクエストヘッダー フィールド名 説明 タイプ 必須 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 検証エラーコード を参照してください。