コンテンツにスキップ

カスタム Web ログインの実装

Hive プラットフォームが提供する Web ログインページ を使用せず、Hive サーバー API を活用して直接 Web ログインを実装する方法を案内します。開発会社が独自のログイン UI を構成し、IdP 認証を直接処理したい場合は、このドキュメントを参照してください。

Note

カスタム Web ログイン API を使用するには、Hive コンソールでアプリ登録および hive_certification_key の発行 が完了している必要があります。

概要

カスタム Web ログインは、次のような場合に使用します。

  • 開発会社独自のログイン UI/UX を適用したい場合
  • 既存の Web サイトのデザインと統一されたログイン画面を実装したい場合
  • Web ログインページにリダイレクトせず、独自のページ内でログインを処理したい場合

API 一覧

API Endpoint 説明
POST /game/auth/signinidp IdP ログイン
POST /game/auth/connect IdP 連携
POST /game/auth/disconnect IdP 連携解除
POST /game/player/delete アカウント削除

共通リクエストヘッダー

ヘッダー名 必須 説明
Content-Type String Y application/json 固定
Authorization String Y or N セッショントークン。トークン検証が必要な API では必須で、それ以外の場合は省略可能
ISCRYPT Integer Y 暗号化有無。0 に固定

共通レスポンスヘッダー

ヘッダー名 説明
Authorization String 新規発行されたセッショントークン。IdP ログイン リクエスト時に require_token: true の場合にのみ発行
ISCRYPT Integer レスポンスの暗号化有無

共通レスポンス形式

成功レスポンス

{
    "result_code": 0,
    "result_msg": "SUCCESS",
    "data": { }
}

失敗レスポンス

{
    "result_code": 4000,
    "result_msg": "Request has invalid format.",
    "data": null
}

IdP ログイン

IdP 情報で新規プレイヤーを作成するか、既に登録済みの IdP の場合は既存プレイヤー情報を返します。ログインに成功すると、data.player_idPlayerID を確認できます。

Note

アカウント削除 API を使用するには、require_tokentrue に設定し、レスポンスヘッダーの Authorization 値を受け取る必要があります。アカウント削除機能を使用しない場合は、false に設定できます。

Request URL

環境 URL
本番 (Production) https://auth.qpyou.com/game/auth/signinidp
サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/signinidp
HTTP Method POST
Content-Type application/json

Request Body

フィールド名 説明 必須
appid String ゲームアプリ ID (AppID) Y
idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y
idp_user_id String IdP ユーザー固有識別子 Y
hive_certification_key String Hive 認証キー Y
require_token Boolean プレイヤートークンの要求有無。アカウント削除 API 使用時は true、未使用時は false Y

Request Body Example

{
    "appid": "com.com2us.example",
    "idp_index": 3,
    "idp_user_id": "google_67890",
    "hive_certification_key": "your_certification_key",
    "require_token": true
}

Response Header

フィールド名 説明
Content-Type String レスポンスデータ形式 (JSON) および文字エンコーディング (UTF-8) 情報
Authorization String セッショントークン

Response Header Example

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

Response Body

フィールド名 説明
result_code Integer 結果コード。0 の場合は成功
result_msg String 結果メッセージ
data.player_id Integer PlayerID
data.idp_index Integer IdP インデックス
data.idp_id String IdP 名
data.idp_user_id String IdP ユーザー ID

Response Body Sample (成功)

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

Response Body Sample (失敗)

{
    "result_code": 4002,
    "result_msg": "Invalid certfication key"
}

エラーコード

コード 説明 備考
4002 認証キーエラー
4200 存在しない IdP
5000 データベースエラー

IdP 連携

既存プレイヤーアカウントに新しい IdP を連携します。必ず IdP ログイン API でログインしてから呼び出してください。

Request URL

環境 URL
本番 (Production) https://auth.qpyou.com/game/auth/connect
サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/connect
HTTP Method POST
Content-Type application/json

Request Body

フィールド名 説明 必須
appid String ゲームアプリ ID (AppID) Y
idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y
idp_user_id String IdP ユーザー固有識別子 Y
player_id Integer 連携する PlayerID Y
hive_certification_key String Hive 認証キー Y

Request Body Example

{
    "appid": "com.com2us.example",
    "idp_index": 2,
    "idp_user_id": "fb_12345678",
    "player_id": 100000001,
    "hive_certification_key": "your_certification_key"
}

Response Body

フィールド名 説明
result_code Integer 結果コード。0 の場合は成功
result_msg String 結果メッセージ
data.player_id Integer PlayerID
data.idp_index Integer 連携された IdP インデックス
data.idp_id String 連携された IdP 名
data.idp_user_id String IdP ユーザー ID

Response Body Sample (成功)

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

Response Body Sample (他のプレイヤーに既に連携されている場合)

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

エラーコード

コード 説明 備考
1002 該当 IdP は他のプレイヤーに既に連携されています
1003 同一の IdP タイプが既に連携されています
2002 存在しないプレイヤー
4002 認証キーエラー
4200 存在しない IdP
5000 データベースエラー

IdP 連携解除

プレイヤーアカウントから連携された IdP を解除します。必ず IdP ログイン API でログインしてから呼び出してください。

Request URL

環境 URL
本番 (Production) https://auth.qpyou.com/game/auth/disconnect
サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/disconnect
HTTP Method POST
Content-Type application/json

Request Body

フィールド名 説明 必須
appid String ゲームアプリ ID (AppID) Y
idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y
idp_user_id String IdP ユーザー固有識別子 Y
player_id Integer PlayerID Y
hive_certification_key String Hive 認証キー Y

Request Body Example

{
    "appid": "com.com2us.example",
    "idp_index": 2,
    "idp_user_id": "fb_12345678",
    "player_id": 100000001,
    "hive_certification_key": "your_certification_key"
}

Response Body

フィールド名 説明
result_code Integer 結果コード。0 の場合は成功
result_msg String 結果メッセージ

Response Body Sample (成功)

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

Response Body Sample (失敗)

{
    "result_code": 4002,
    "result_msg": "Invalid certfication key"
}

エラーコード

コード 説明 備考
4002 認証キーエラー
4006 連携された IdP 情報がありません
4200 存在しない IdP
7000 無効なトークン

アカウント削除

プレイヤーアカウントを削除します。必ず IdP ログイン API でログインしてから呼び出してください。

この API はトークン検証が必須のため、必ず次の作業を先に行ってください。

  1. IdP ログイン API 呼び出し時に require_tokentrue に設定
  2. IdP ログイン API のレスポンスヘッダーで受け取った Authorization 値を保存
  3. この API を呼び出す際に、リクエストヘッダーに上記で保存した Authorization 値を含める
Warning

アカウント削除は元に戻せません。削除前に、ユーザーに十分な案内を提供してください。

Request URL

環境 URL
本番 (Production) https://auth.qpyou.com/game/player/delete
サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/player/delete
HTTP Method POST
Content-Type application/json

Request Header

ヘッダー名 説明 必須
Authorization String IdP ログイン 呼び出し時に require_token: true を設定し、レスポンスヘッダーで受け取ったセッショントークン Y

Request Body

フィールド名 説明 必須
appid String ゲームアプリ ID (AppID) Y
player_id Integer 削除する PlayerID Y
did Integer デバイス ID。0 固定 Y
hive_certification_key String Hive 認証キー Y

Request Body Example

{
    "appid": "com.com2us.example",
    "player_id": 100000001,
    "did": 0,
    "hive_certification_key": "your_certification_key"
}

Response Body

フィールド名 説明
result_code Integer 結果コード。0 の場合は成功
result_msg String 結果メッセージ

Response Body Sample (成功)

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

Response Body Sample (失敗)

{
    "result_code": 7000,
    "result_msg": "Invalid token."
}

エラーコード

コード 説明 備考
4002 認証キーエラー
7000 無効なトークン
7001 ヘッダーにトークンがありません

IdP コード定義

基本 IdP

コード IDP_ID 説明
0 GUEST ゲスト
1 HIVE メンバーシップアカウント
2 FACEBOOK Facebook
3 GOOGLE Google
4 QQ QQ
5 WEIBO Weibo
6 VK VK
7 WECHAT WeChat
8 APPLE Apple Game Center
9 SIGNIN_APPLE Sign in with Apple
10 LINE LINE
11 TWITTER Twitter
12 WEVERSE Weverse
13 NAVER Naver
14 GOOGLE_PLAY_GAMES Google Play Games
15 HUAWEI Huawei
16 FUNTAP Funtap
18 STEAM Steam
19 X X (旧 Twitter)
20 TELEGRAM Telegram
21 XIAOMI Xiaomi
22 OPPO OPPO
23 VIVO VIVO

カスタム IdP

コード IDP_ID 説明
1100 CUSTOM_GAME ゲーム会社提供の独自 IdP