콘텐츠로 이동

본인 확인 서비스

하이브 플랫폼은 대한민국 관련 법령과 컴플라이언스 준수를 위해 성인 인증, 보호자 동의, 본인 인증과 같은 '본인 확인 서비스'를 제공합니다. '본인 확인 서비스'는 대한민국에서 주민등록번호나 외국인 등록번호를 보유하고 본인 명의 휴대폰을 가진 사용자만 수행할 수 있습니다.

성인 인증

청소년이용불가 등급의 게임은 「청소년보호법」 등 관련 법령에 따라 만 19세 미만의 미성년자가 이용할 수 없도록 제한되어야 합니다. 하이브 플랫폼의 성인 인증 기능은 휴대폰 본인 인증을 통해 이용자의 성인 여부를 확인하며, 성인으로 확인된 경우에 한해 게임 접속이 가능하도록 제공합니다.

성인 인증은 최초 인증 시점부터 1년간 유효하며, 앱 실행 시 유효기간이 만료되었다고 판단되면 자동으로 재인증 절차가 진행됩니다.

성인 인증

하이브 콘솔에서 성인 인증을 사용으로 설정하면 Hive SDK에 별도의 코드를 추가로 구현하지 않아도 게임 로그인 시 성인 인증이 자동으로 수행됩니다. 다만, 성인 인증이 실패했을 때, 모바일의 경우에는 사용자가 알 수 있도록 게임 내 안내 팝업 구현 및 게임에 진입하지 않도록 처리가 필요합니다.

또한 성인 인증 결과값에 따라 게임에서 추가적인 플로우를 제공하려는 경우, 중복가입확인정보(DI) 해시값 획득을 통해 계정 생성 제한과 같은 기능을 구현할 수 있습니다.

성인 인증 설정에 대한 자세한 내용은 [하이브 콘솔 가이드 > 인증 > 성인 인증 > 사용 설정]을 참고하세요.

성인 인증 실패 응답

만 19세 미만의 미성년 사용자가 성인 인증을 시도해 인증에 실패할 경우, SignIn() 호출 시 응답값으로 ResultAPI.CANCELED(-6)ResultAPI.Code.AgeLimit(-1200067), "Failed due to age restriction." 메시지가 반환됩니다.

게임사는 해당 응답을 기반으로 게임 내 미성년 사용자에게 원하는 방식으로 안내 메시지를 제공할 수 있습니다.

언어 문구
한국어 서비스 제한 연령으로 앱을 이용할 수 없습니다.
영어 You cannot use the app due to the age restriction for service.
일본어 サービスには年齢制限があるため、アプリを利用できません。
중국어 간체 由于年龄限制,不能使用应用。
중국어 번체 未符合使用服務的年齡限制,無法使用應用程式。
독일어 Du kannst die Anwendung aufgrund der Altersbeschränkung des Dienstes nicht nutzen.
프랑스어 Vous ne pouvez pas utiliser l'application en raison de l'âge limite du service.
러시아어 Использование приложения недоступно из-за возрастных ограничений.
스페인어 No puede usar la aplicación debido a la restricción de edad para el servicio.
포르투갈어 Você não pode usar o aplicativo devido à restrição de idade do serviço.
인도네시아어 Aplikasi tidak bisa digunakan karena terdapat usia minimal untuk menggunakan layanan ini.
태국어 คุณไม่สามารถใช้แอปได้เนื่องจากบริการนี้มีการจำกัดอายุ
베트남어 Bạn không thể sử dụng ứng dụng do thuộc độ tuổi bị giới hạn sử dụng dịch vụ.
이탈리아어 Non è possibile utilizzare l'applicazione a causa del limite di età per l'uso del servizio.
터키어 Hizmetin yaş kısıtlaması nedeniyle uygulamayı kullanamazsınız.
아랍어 لا يمكنك استخدام التطبيق بسبب القيود العمرية للخدمة.

DI 해시값 획득

성인 인증이 완료된 후 SDK의 AuthV4.getHashedDi 메서드를 호출하면 성인 인증된 사용자를 식별할 수 있는 DI 해시값을 획득할 수 있습니다. DI는 보안을 위해 해시 처리되어 제공되며, 해당 값은 로그인 이후 PlayerID와 연동되므로 성인 인증 사용자 식별자로 사용할 수 있습니다.

API Reference: hive.AuthV4.getHashedDi

using hive;    
AuthV4.getHashedDi((ResultAPI result, String hashedDi) => {    
    if (result.isSuccess()) {    
        // API call successful 
    } else {
        // NEED_INITIALIZE setup 전 호출
        // INVALID_SESSION signIn 전 호출
        // DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
    }
});
#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

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

AuthV4.getHashedDi(result, hashedDi -> {    
    if (result.isSuccess()) {    
        // API call successful    
    } else {
        // NEED_INITIALIZE setup 전 호출
        // INVALID_SESSION signIn 전 호출
        // DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
    }
});

API Reference: AuthV4Interface.getHashedDi

import HIVEService

AuthV4Interface.getHashedDi() { result, hashedDi in    
    if result.isSuccess() {    
        // API call successful    
    } else {
        // NEED_INITIALIZE setup 전 호출
        // INVALID_SESSION signIn 전 호출
        // DEVELOPER_ERROR, CommonLibraryMissing 성인 인증 라이브러리 참조 실패
    }
}

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 성인 인증 라이브러리 참조 실패
    }
}];

계정 생성 제한 정책에 DI 해시값 활용

성인 인증은 여러 개의 PlayerID를 보유한 사용자가 하나의 휴대폰 번호로 인증할 수 있습니다. 게임 운영 정책에 따라 같은 휴대폰 번호로 다수의 인증을 제한하고자 한다면, 전화번호당 성인 인증 가능한 계정 수를 제한하여 막을 수 있습니다. 게임사는 성인 인증 결과로 받은 DI 해시값과 PlayerID를 매핑하여 저장해 두어야 합니다. DI 해시값을 기준으로 이미 생성된 PlayerID 수를 확인하여 계정 생성 제한 정책에 따라 게임 사용자 진입을 제어할 수 있습니다.

보호자 동의

아동 또는 청소년이 PC 게임을 이용하는 경우, 「청소년보호법」에 따라 만 19세 미만 사용자는 보호자의 동의가 필요합니다. 하이브 플랫폼에서는 휴대폰 본인 인증을 통해 사용자의 연령을 확인하며, 사용자가 아동 또는 청소년이라면 부모 또는 법정대리인 등 보호자의 휴대폰 본인 인증을 한 번 더 진행하여 게임 이용을 확인합니다. 보호자 동의는 게임 설치 후 최초 1회 진행됩니다.

보호자 동의

보호자 동의 동작

연령 확인

PC 게임 최초 실행 시 휴대폰 본인 인증을 통해 사용자의 연령을 확인합니다. 인증 결과에 따라 아동, 청소년, 성인으로 구분하며, 아동 또는 청소년이라면 보호자 동의가 진행됩니다. 연령에 따라 정보 수집 내역과 동작 과정에 차이가 있습니다.

연령에 따른 동작

  • 아동 (만 14세 미만)
    • 보호자 동의 여부 확인 및 보호자의 이메일을 수집
    • 보호자의 휴대폰 본인 인증을 통해 보호자 동의를 진행하며, 이때 보호자의 연령이 만 19세 이상인지 확인
    • 보호자 동의 완료 후, 수집된 보호자 이메일로 게임 이용 안내 메일이 발송
  • 청소년 (만 14세 이상 ~ 만 19세 미만)
    • 보호자 동의 안내 고지 및 보호자의 이메일을 수집
    • 보호자의 휴대폰 본인 인증을 통해 보호자 동의를 진행하며, 이때 보호자의 연령이 만 19세 이상인지 확인
    • 보호자 동의 완료 후, 수집된 보호자 이메일로 게임 이용 안내 메일이 발송
  • 성인 (만 19세 이상)
    • 별도의 추가 절차 없이 바로 게임을 이용
구분 연령 기준 보호자 동의 진행 여부 보호자 이메일 발송
아동 만 14세 미만 진행 게임 이용 안내 메일 발송
청소년 만 14세 이상 만 19세 미만 진행 게임 이용 안내 메일 발송
성인 만 19세 이상 진행 안 함 발송하지 않음

보호자 동의 정보

아동 또는 청소년 사용자의 생년월일, 보호자의 이메일 정보는 게임에서 고객지원 처리, 게임 이용 이력 확인, 보호자 안내 등의 용도로 활용할 수 있습니다.

보호자 동의 정보를 조회하려면 보호자 동의 완료 이후 getParentalConsentInfo() 메서드를 호출하세요. getParentalConsentInfo() 메서드는 보호자 동의 과정에서 수집된 다음 정보를 반환합니다.

  • 아동 또는 청소년 사용자의 생년월일
  • 보호자의 이메일 주소

API Reference: hive.AuthV4.getParentalConsentInfo

using hive;    

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

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

API Reference: AuthV4::getParentalConsentInfo

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

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

본인 인증

본인 인증은 사용자 명의로 가입된 이동통신사(SKT, KT, LGU+, 알뜰폰)를 통해 문자(SMS) 또는 PASS 앱으로 발송되는 6자리 인증번호를 입력하여 본인 여부를 확인하는 기능입니다.

Hive SDK는 게임 로그인 여부와 관계없이 게임이 원하는 시점에 본인 인증 API를 호출할 수 있도록 지원합니다. 이에 따라 상점 진입, 던전 입장 등 특정 서비스 이용 시점에 본인 인증을 수행하도록 구성할 수 있습니다. 게임 내 상점 진입 시 연령을 확인하여 미성년자의 확률형 아이템 구매를 제한하거나, 특정 연령대 이하의 사용자에게 광고를 노출하지 않는 등 게임 운영 정책에 맞게 활용할 수 있습니다.

본인 인증

응답 정보

Hive SDK에서 본인 인증 API를 호출하면, 인증 완료 후 휴대폰 번호, 생년월일, DI 해시값을 반환합니다. 본인 인증 API는 게임이 원하는 시점에서 호출할 수 있기 때문에 로그인 시점에서 획득한 PlayerID와 매핑하기 어렵습니다. 따라서 본인 인증의 DI 해시값은 사용자 식별 용도로 활용할 수 없습니다.

  • 휴대폰 번호
  • 생년월일
  • DI 해시값 (Hashed DI)

API 호출 후 결과값을 정상적으로 수신하지 못한 경우에는 본인 인증 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 본인 인증 라이브러리 참조 실패
    }
}];

성인 인증과 본인 인증의 DI 해시값 정리

구분 성인 인증 본인 인증
DI 해시값 사용자 식별 및 PlayerID 매핑 가능 단순 본인 확인 결과값으로 매핑 불가
특징 로그인 세션과 연동되어 식별자로 사용 가능 로그인 여부와 무관하게 호출 가능하여 식별자로 활용 금지 (일회성 확인 용도)

본인 인증과 성인 인증 또는 본인 인증과 기기 관리를 동시에 사용하는 경우

앱에서 본인 인증과 성인 인증 또는 본인 인증과 기기 관리를 결합하여 사용할 경우, 사용자 편의를 위해 PASS 앱을 통한 본인 확인 절차를 1회만 수행합니다. 단, 이 기능을 활용할 경우 반드시 본인 인증을 로그인 이전에 먼저 호출해야 합니다. 성인 인증과 기기 관리는 로그인 과정에서 진행하기 때문에 같은 사용자로 판단하여 인증 과정을 생략합니다. 만약 로그인 이후에 본인 인증 API를 호출하면 성인 인증, 기기 관리, 본인 인증을 하려는 사용자가 같다고 판단하기 어렵기 때문에 PASS 앱 인증을 각각 요구하게 됩니다.

동시에 사용하는 경우 다음 순서로 활용할 수 있습니다.

  • 본인 인증 API 호출 -> PASS 앱 실행 -> 본인 확인 -> 성인 여부 확인 -> 로그인 완료
  • 본인 인증 API 호출 -> PASS 앱 실행 -> 본인 확인 -> 기기 관리 가입 -> 로그인 완료
  • 본인 인증 API 호출 -> PASS 앱 실행 -> 본인 확인 -> 성인 여부 확인 -> 기기 관리 가입 -> 로그인 완료

본인 인증 + 성인 인증 설정할 경우

본인 인증 과정에서 PASS 인증이 이미 수행되므로, 성인 인증 단계에서는 나이 판단만 진행합니다.

  • 19세 이상 성인: 정상적으로 로그인 완료
  • 19세 미만 아동 및 청소년: 로그인 에러를 전달하거나 '서비스 이용 불가' 팝업 메시지 노출

본인 인증 + 성인 인증

본인 인증 + 기기 관리를 설정할 경우

본인 인증 과정에서 PASS 앱 인증이 이미 수행되므로, 기기 관리 가입 시 필요한 일회용 비밀번호(OTP) 인증 절차를 생략하여 보다 빠르게 진행할 수 있습니다.

본인 인증 + 기기 관리

본인 인증 + 성인 인증 + 기기 관리를 설정한 경우

본인 인증 과정에서 PASS 앱 인증이 이미 수행되므로, 성인 인증과 기기 관리 절차가 간소화됩니다.

  • 성인 인증: 나이 판단만 진행
    • 19세 이상 성인: 로그인 완료
    • 19세 미만 아동 및 청소년: 로그인 에러 전달 또는 ‘서비스 이용 불가’ 팝업 메시지 노출
  • 기기 관리: 가입 시 필요한 OTP 인증 절차를 생략하여 빠르게 진행

본인 인증 + 성인 인증 + 기기 관리