본인 확인 서비스
하이브 플랫폼에서는 한국 컴플라이언스 준수를 위해 본인 확인 서비스를 제공합니다. 본인 확인 서비스는 본인 인증과 성인 인증, 보호자 동의 기능으로 구성되며, 모바일과 PC 게임에서 모두 사용할 수 있도록 하이브 SDK(이하 SDK) Android 및 iOS, Windows 타겟에서 모두 지원합니다. 모바일 게임 환경에서 게임 화면이 가로 방향으로 노출되라도 본인 확인 서비스 UI는 세로로 제공됩니다.
본인 인증¶
본인 인증은 게임 내 어뷰징 제한 혹은 특정 연령대의 유저를 제한할 수 있도록 사용자 휴대폰 번호로 본인 확인을 할 수 있는 기능입니다. SDK에서는 게임 로그인 시점과는 무관하게 본인 인증 API를 호출할 수 있기 때문에 상점 진입, 던전 진입 등과 같은 서비스 시작 전에 본인 인증을 진행할 수 있습니다. 따라서 본인 인증을 완료한 사용자만 이후 게임 프로세스를 이어가도록 활용할 수 있습니다.
SDK에서는 본인 인증 API을 호출 후 본인 인증이 완료되면 전화번호와 생년월일, DI(Duplicated Joining Verification Information) 해시값을 결과로 얻습니다. 이 때, DI 해시값은 현재 로그인과 무관하며 PlayerID와 연동되지 않습니다.
본인 인증 API를 호출하는 예제 코드는 아래와 같습니다.
API Reference: hive.AuthV4.showIdentityVerification
using hive;
AuthV4.showIdentityVerification((ResultAPI result, Identity identity) => {
if (result.isSuccess()) {
// API call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
});
#include "HiveAuthV4.h"
FHiveAuthV4::showIdentityVerification(FHiveAuthV4OnIdentityVerificationDelegate::CreateLambda([this](const FHiveResultAPI& Result, FHiveIdentity& identity) {
if (Result.IsSuccess()) {
// API call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
}));
API Reference: 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 call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
});
API Reference: 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 call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
}
})
API Reference: AuthV4.showIdentityVerification
import com.hive.AuthV4;
import com.hive.ResultAPI;
AuthV4.showIdentityVerification(result, identity -> {
if (result.isSuccess()) {
// API call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
});
API Reference: AuthV4Interface.showIdentityVerification
import HIVEService
AuthV4Interface.showIdentityVerification() { result, identity in
if result.isSuccess() {
// API call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
}
API Reference: HIVEAuthV4:showIdentityVerification
#import <HIVEService/HIVEService-Swift.h>
[HIVEAuthV4 showIdentityVerification: ^(HIVEResultAPI *result, HIVEIdentity *> *identity) {
if ([result isSuccess]) {
// API call successful
// identity.phoneCode, phoneNumber, dateOfBirth, hashedDi
} else {
// NEED_INITIALIZE setup 전 호출
// CANCELED 인증 결과 받기 전 창 닫힘
// RESPONSE_FAIL 정상적이지 않은 응답
// DEVELOPER_ERROR, CommonLibraryMissing 본인 인증 라이브러리 참조 실패
}
}];
성인 인증¶
게임 등급 분류가 청소년 이용불가인 게임은 19세 미만의 미성년자는 이용할 수 없도록 제한되어야 합니다. 하이브 플랫폼은 휴대폰 본인 인증을 통해 성인 여부 확인 후에만 게임 접속이 가능하도록 성인 인증 기능을 제공합니다. 성인 인증의 유효 기간은 1년이며, 이후에는 자동으로 재인증 절차가 진행됩니다.
성인 인증 기능은 콘솔의 [인증 > 성인인증 > 사용설정]에서 성인 인증을 사용하도록 설정하면 SDK 내 별도의 코드 구현 없이도 게임 로그인 시에 수행할 수 있습니다.
Warning
본인 인증 및 성인 인증은 대한민국에서 주민등록번호 또는 외국인 등록번호를 보유하고 본인 명의 휴대폰을 가진 유저만 수행할 수 있습니다.
성인 인증 실패 시 응답¶
미성년자가 성인 인증을 시도해 성인 인증에 실패하면 ResultAPI.CANCELED(-6)와 ResultAPI.Code.AgeLimit(-1200067), "Failed due to age restriction." 응답을 받습니다. 게임사에서는 이 응답을 토대로 게임 내 미성년 유저에게 원하는 방식으로 안내할 수 있습니다.
DI 해시값 획득¶
성인 인증이 완료된 후, SDK에서 AuthV4.getHashedDi 메서드를 호출하면 성인 인증된 유저를 식별할 수 있는 DI 해시값을 얻습니다. DI를 해시한 이유는 보안 때문이며 게임사는 이 해시값을 그대로 사용해도 됩니다. 이 DI 해시값은 로그인 후 PlayerID에 연동되므로, 해시값을 성인 인증된 유저 식별자로 사용할 수 있습니다.
AuthV4.getHashedDi 메서드를 호출하여 PlayerID에 연동된 DI 해시값을 얻는 예제 코드는 아래와 같습니다.
API Reference: hive.AuthV4.getHashedDi
#include "HiveAuthV4.h"
FHiveAuthV4::getHashedDi(FHiveAuthV4OnHashedDiDelegate::CreateLambda([this](const FHiveResultAPI& Result, FString& hashedDi) {
if (Result.IsSuccess()) {
// API 호출 성공
} else {
// NEED_INITIALIZE setup 전 호출
// INVALID_SESSION signIn 전 호출
// DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
}
}));
API Reference: 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 setup 전 호출
// INVALID_SESSION signIn 전 호출
// DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
}
});
API Reference: 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 call successful
} else {
// NEED_INITIALIZE setup 전 호출
// INVALID_SESSION signIn 전 호출
// DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
}
}
})
API Reference: AuthV4.getHashedDi
API Reference: AuthV4Interface.getHashedDi
API Reference: HIVEAuthV4:getHashedDi
#import <HIVEService/HIVEService-Swift.h>
[HIVEAuthV4 getHashedDi: ^(HIVEResultAPI *result, NSString *> *hashedDi) {
if ([result isSuccess]) {
// API call successful
} else {
// NEED_INITIALIZE setup 전 호출
// INVALID_SESSION signIn 전 호출
// DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
}
}];
보호자 동의¶
청소년보호법에 따라 19세 미만은 보호자 동의가 있어야만 게임 가입 및 이용이 가능합니다. SDK에서는 청소년이 PC 게임에 가입하는 경우, 휴대폰 본인 인증을 통해 보호자 동의를 받을 수 있는 기능을 제공합니다. 또한 보호자에게 게임 이용 내역을 제공하는 경우, 청소년의 생년월일과 보호자 이메일 주소를 게임 앱에 전달합니다.
보호자 동의 정보 가져오기¶
보호자 동의 정보를 가져오려면 보호자 동의 완료 후 getParentalConsentInfo() 메소드를 호출해야 합니다. getParentalConsentInfo 메소드는 보호자 동의 시 전달된 유저(미성년자)의 생년월일과 보호자의 이메일 주소를 전달합니다.
보호자 동의 정보를 가져오는 예제 코드는 아래와 같습니다.
