コンテンツにスキップ

本人確認サービス

Hiveプラットフォームは、韓国のコンプライアンス要件に準拠するための本人確認サービスを提供します。この本人確認サービスは、本人認証、成人確認、および親の同意機能で構成されており、Hive SDK(以下、SDK)のAndroid、iOS、Windowsターゲットでサポートされているため、モバイルゲームとPCゲームの両方で使用できます。モバイルゲーム環境では、ゲーム画面が横向きで表示されていても、本人確認サービスのUIは縦向きで提供されます。

身分認証

本人確認は、ユーザーの携帯電話番号を使用して本人確認を行い、ゲーム内の悪用を制限したり、特定の年齢層のユーザーを制限したりする機能です。SDKはゲームのログインタイミングに関係なく本人確認APIを呼び出すことができるため、ストアに入る、またはダンジョンに入るといったサービスを開始する前に本人確認を行うことができます。したがって、本人確認を完了したユーザーのみがその後のゲームプロセスを続行できるようにするために使用できます。


SDKが本人確認APIを呼び出し、本人確認が完了すると、電話番号、生年月日、およびDI(重複参加確認情報)のハッシュ値が結果として取得されます。この時、DIハッシュ値は現在のログインに関連せず、PlayerIDにリンクされません。

アイデンティティ認証APIを呼び出すための例のコードは以下の通りです:

APIリファレンス: hive.AuthV4.showIdentityVerification

using hive;

AuthV4.showIdentityVerification((ResultAPI result, Identity identity) => {    
    if (result.isSuccess()) {    
        // API呼び出し成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEはセットアップ前に呼び出されました
        // CANCELED ウィンドウは認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL 異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリの参照に失敗しました
    }
});
#include "HiveAuthV4.h"

FHiveAuthV4::showIdentityVerification(FHiveAuthV4OnIdentityVerificationDelegate::CreateLambda([this](const FHiveResultAPI& Result, FHiveIdentity& identity) {
    if (Result.IsSuccess()) {
        // API呼び出し成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEがセットアップ前に呼ばれました
        // CANCELED ウィンドウが認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL 異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリの参照に失敗しました
    }
}));

APIリファレンス: AuthV4::showIdentityVerification

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;

AuthV4::showIdentityVerification([=](ResultAPI result, Identity identity) {    
    if (result.isSuccess()) {    
        // APIコール成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEはセットアップ前に呼び出されました
        // CANCELEDウィンドウは認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL 異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリの参照に失敗しました
    }   
});

APIリファレンス: AuthV4.showIdentityVerification

import com.hive.AuthV4    
import com.hive.ResultAPI    

AuthV4.showIdentityVerification(object : AuthV4.AuthV4ShowIdentityVerificationListener {    
    override fun onAuthV4ShowIdentityVerification(result: ResultAPI, identity: Identity?) {    
        if (result.isSuccess) {    
            // API呼び出し成功
            // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
        } else {
            // NEED_INITIALIZEはセットアップ前に呼ばれました
            // CANCELED ウィンドウは認証結果を受け取る前に閉じられました
            // RESPONSE_FAIL 異常な応答
            // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリの参照に失敗しました
        } 
    }    
})

APIリファレンス: AuthV4.showIdentityVerification

import com.hive.AuthV4;    
import com.hive.ResultAPI;    

AuthV4.showIdentityVerification(result, identity -> {    
    if (result.isSuccess()) {    
        // APIコール成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEはセットアップ前に呼び出されました
        // CANCELEDウィンドウは認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissingアイデンティティ認証ライブラリの参照に失敗しました
    }
});

APIリファレンス: AuthV4Interface.showIdentityVerification

import HIVEService

AuthV4Interface.showIdentityVerification() { result, identity in    
    if result.isSuccess() {    
        // API呼び出し成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEはセットアップ前に呼ばれました
        // CANCELEDウィンドウは認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL 異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリへの参照に失敗しました
    }
}

APIリファレンス: HIVEAuthV4:showIdentityVerification

#import <HIVEService/HIVEService-Swift.h>

[HIVEAuthV4 showIdentityVerification: ^(HIVEResultAPI *result, HIVEIdentity *> *identity) {    
    if ([result isSuccess]) {    
        // APIコール成功
        // identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
    } else {
        // NEED_INITIALIZEはセットアップ前に呼び出されました
        // CANCELEDウィンドウは認証結果を受け取る前に閉じられました
        // RESPONSE_FAIL 異常な応答
        // DEVELOPER_ERROR, CommonLibraryMissing アイデンティティ認証ライブラリの参照に失敗しました
    }
}];

成人確認

「青少年使用禁止」と分類されたゲームは、19歳未満の未成年者のアクセスを制限しなければなりません。Hiveプラットフォームは、携帯電話の本人確認を通じて成人のステータスを確認した後にのみゲームアクセスを許可する成人確認機能を提供しています。成人確認の有効期間は1年で、その後、自動再認証プロセスが行われます。

ゲームログイン中に大人の確認機能を実行することができ、SDKに別のコードを実装する必要はありません。ただし、コンソールで大人の確認が有効になっている必要があります [認証 > 大人の認証 > 設定を有効にする]。

Warning

本人確認および成人確認は、住民登録番号または外国人登録番号を持ち、自分名義の携帯電話を所有する韓国のユーザーのみが行うことができます。

大人の確認が失敗したときの応答

未成年者が成人確認を試みて失敗すると、ResultAPI.CANCELED(-6)ResultAPI.Code.AgeLimit(-1200067) の応答を受け取り、「年齢制限のため失敗しました。」というメッセージが表示されます。ゲーム会社は、この応答を使用して、ゲーム内の未成年ユーザーを希望する方法で導くことができます。

DIハッシュ値の取得

成人確認が完了した後、SDK内のAuthV4.getHashedDiメソッドを呼び出すことで、成人確認済みユーザーを識別できるDIハッシュ値を取得します。DIをハッシュ化する理由はセキュリティ上の目的であり、ゲーム会社はこのハッシュ値をそのまま使用できます。このDIハッシュ値はログイン後にPlayerIDにリンクされるため、ハッシュ値は成人確認済みユーザーの識別子として使用できます。

PlayerIDに関連付けられたDIハッシュ値を取得するためにAuthV4.getHashedDiメソッドを呼び出す例のコードは次のとおりです:

APIリファレンス: hive.AuthV4.getHashedDi

using hive;    
AuthV4.getHashedDi((ResultAPI result, String hashedDi) => {    
    if (result.isSuccess()) {    
        // API call successful 
    } else {
        // NEED_INITIALIZE called before setup
        // INVALID_SESSION called before signIn
        // DEVELOPER_ERROR, CommonLibraryMissing failed to reference adult verification library
    }
});
#include "HiveAuthV4.h"

FHiveAuthV4::getHashedDi(FHiveAuthV4OnHashedDiDelegate::CreateLambda([this](const FHiveResultAPI& Result, FString& hashedDi) {
    if (Result.IsSuccess()) {
        // API呼び出し成功
    } else {
        // NEED_INITIALIZEがセットアップ前に呼ばれました
        // INVALID_SESSIONがサインイン前に呼ばれました
        // DEVELOPER_ERROR、CommonLibraryMissingが成人確認ライブラリを参照できませんでした
    }
}));

APIリファレンス: AuthV4::getHashedDi

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;    
AuthV4::getHashedDi([=](ResultAPI result, string hashedDi) {    
    if (result.isSuccess()) {    
        // API call successful    
    } else {
        // NEED_INITIALIZE called before setup
        // INVALID_SESSION called before signIn
        // DEVELOPER_ERROR, CommonLibraryMissing failed to reference adult verification library
    }   
});

APIリファレンス: AuthV4.getHashedDi

import com.hive.AuthV4    
import com.hive.ResultAPI    

AuthV4.getHashedDi(object : AuthV4.AuthV4GetHashedDiListener {    
    override fun onAuthV4GetHashedDi(result: ResultAPI, hashedDi: String?) {    
        if (result.isSuccess) {    
            // API呼び出し成功    
        } else {
            // NEED_INITIALIZEはセットアップ前に呼び出されました
            // INVALID_SESSIONはサインイン前に呼び出されました
            // DEVELOPER_ERROR、CommonLibraryMissingは成人確認ライブラリを参照できませんでした
        } 
    }    
})

APIリファレンス: AuthV4.getHashedDi

import com.hive.AuthV4;    
import com.hive.ResultAPI;    

AuthV4.getHashedDi(result, hashedDi -> {    
    if (result.isSuccess()) {    
        // APIコール成功    
    } else {
        // NEED_INITIALIZEがセットアップ前に呼ばれました
        // INVALID_SESSIONがサインイン前に呼ばれました
        // DEVELOPER_ERROR、CommonLibraryMissingが成人確認ライブラリを参照できませんでした
    }
});

APIリファレンス: AuthV4Interface.getHashedDi

import HIVEService

AuthV4Interface.getHashedDi() { result, hashedDi in    
    if result.isSuccess() {    
        // API呼び出し成功    
    } else {
        // NEED_INITIALIZEはセットアップ前に呼び出されました
        // INVALID_SESSIONはサインイン前に呼び出されました
        // DEVELOPER_ERROR、CommonLibraryMissingが成人確認ライブラリを参照できませんでした
    }
}

API リファレンス: HIVEAuthV4:getHashedDi

#import <HIVEService/HIVEService-Swift.h>

[HIVEAuthV4 getHashedDi: ^(HIVEResultAPI *result, NSString *> *hashedDi) {    
    if ([result isSuccess]) {    
        // API呼び出し成功    
    } else {
        // NEED_INITIALIZEがセットアップ前に呼ばれました
        // INVALID_SESSIONがサインイン前に呼ばれました
        // DEVELOPER_ERROR、CommonLibraryMissingが成人確認ライブラリを参照できませんでした
    }
}];

親の同意

青少年保護法に従い、19歳未満の者は親の同意がない限り、ゲームに参加したり使用したりすることはできません。SDKは、未成年者がPCゲームに参加する際に、携帯電話の本人確認を通じて親の同意を取得する機能を提供します。さらに、ゲームの利用詳細を親に提供する際には、未成年者の生年月日と親のメールアドレスがゲームアプリに送信されます。

親の同意情報を取得するには、親の同意を完了した後にgetParentalConsentInfo()メソッドを呼び出す必要があります。getParentalConsentInfoメソッドは、親の同意中に提供されたユーザー(未成年)の生年月日と親のメールアドレスを返します。

親の同意情報を取得するためのサンプルコードは以下の通りです:

APIリファレンス: hive.AuthV4.getParentalConsentInfo

using hive;    

    AuthV4.ParentalConsentInfo parentalConsentInfo = AuthV4.getParentalConsentInfo();    
#include "HiveAuthV4.h"

TOptional<FHiveParentalConsentInfo> ParentalConsentInfo = FHiveAuthV4::GetParentalConsentInfo();

APIリファレンス: AuthV4::getParentalConsentInfo

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    AuthV4::ParentalConsentInfo parentalConsentInfo = AuthV4::getParentalConsentInfo();