로그인 타입 확인하기

GetLoginType은 이전 로그인의 상태를 리턴하여 현재 어떤 타입으로 로그인해야 하는지에 대해 알려준다.

GetLoginType의 결과에 따라 다음 4가지 경우로 로그인을 진행할 수 있다

  • guest : 게스트 로그인으로 플레이 했던 유저, 게스트 자동 로그인 진행
  • platform : Hive 로그인으로 플레이 했던 유저, Hive 자동 로그인 진행
  • authorized : Hive 로그인 후 로그아웃 또는 삭제 후 재설치를 한 유저. 자동 로그인 불가, Hive 로그인 버튼만 노출 가능
  • N/A : 로그인 기록이 없는 유저. 게스트 로그인, Hive 로그인 버튼 둘 다 노출

C2SModuleSns_GetLoginType

Request
argument name type desc platform 비고
argumet는 없으며 콜백 형식이 아닌 바로 리턴 타입
Response
argument name type desc platform 비고
N/A string guest : 게스트 유저의 세션키가 존재, 게스트 자동 로그인 진행
platform : Hive 유저의 세션키가 존재(게스트 로그인 금지), Hive 자동 로그인 진행
authorized : 세션키는 없으나 Hive 로그인한 적이 있는 유저(자동 로그인 불가)
“” : empty string 세션키 없음(자동 로그인불가)
all
샘플 코드
Unity®

API Reference: C2SModule.Sns.GetLoginType

  • public static string C2SModule.Sns.GetLoginType();

Unreal

API Reference: HiveSDKUESns_GetLoginType

  • FString HiveSDKUESns_GetLoginType();

Cocos2d-x

API Reference: C2SModuleSns_GetLoginType

  • bool C2SModuleSns_GetLoginType( );

iOS

API Reference: C2SModuleSns GetLoginType

  • +(NSString *)GetLoginType;

C2SModuleSns_Session

Hive 1.20.2.3 이상 적용 Android 빌드에서 Google Play Games for PC를 사용하는 빌드인 경우 C2SModuleSns_GetLoginType이 아닌 C2SModuleSns_Session을 통해 어떤 타입으로 로그인해야 하는지 확인합니다.

Request
argument name type desc platform 비고
service string “googlePlayGames”: Google Play Games for PC 적용 시 servicegooglePlayGames로 설정하면 Hive SDK는 Google Player Id에 연결된 Hive 계정 식별자 정보를 탐색합니다. Android Hive 1.20.2.3+
Response
argument name type desc platform 비고
service string “googlePlayGames” Android Hive 1.20.2.3+
sessionType string “autoGuest”: 게스트 세션이 있는 상태, 해당 값 확인 후 C2SModuleSns_Login으로 게스트 로그인 요청을 진행한다.
“autoHive”: Hive 정식유저 세션이 있는 상태, 해당 값 확인 후 C2SModuleSns_Login으로 Hive 정식유저 로그인을 요청한다.
“none”: 세션이 없는 상태, 해당 값 확인 후 C2SModuleSns_Login 호출 시 게스트 버튼 노출 값(showGuestLogin 값. true 또는 false)을 설정하여 요청한다.
Android Hive 1.20.2.3+

 
 
 
 

참고 플로우(Android)

샘플 코드
Unity®

Cocos2d-x

게스트 로그인

로그인 타입 확인의 결과가 guest이거나, 유저가 게스트 로그인 버튼을 클릭 시 사용한다.
게스트 세션키가 존재하는 경우 해당 게스트 VID로 로그인 되며, 없는 경우 새로운 게스트 VID가 생성된다.

게스트 로그인: C2SModuleSns_Login

  • 로그인 요청을 한다.
  • Delegate에 C2SModuleApi_SnsLogin 콜백이 내려온다.
Request
argument name type desc platform 비고
type string “guest”: 게스트 로그인을 요청한다.
“select” : 생성된 게스트 유저 vid와 Hive 유저 vid의 데이터를 선택하는 웹뷰를 띄운다.
N/A : Hive 로그인을 요청한다.
all
currentVidData Dictionary (optional)”select” 일 때, 현재 게스트 유저 데이터 all
usedVidData Dictionary (optional)”select” 일 때, Hive 유저 게임 데이터 all
Response
argument name type desc platform 비고
type string “guest” all
vid string 게스트 유저 vid all
sessionToken string session key all
샘플 코드
Unity®

API Reference: C2SModule.Sns.Login

  • public static bool C2SModule.Sns.Login(C2SModule.Parameter arg, out C2SModule.Error error) ;
  • public static bool C2SModule.Sns.Login(C2SModule.Parameter arg, out C2SModule.Error error, C2SModule.CompletionHandler completionHandler);

Unreal

API Reference: HiveSDKUESns_Login

  • void HiveSDKUESns_Login(FString fstrJson);

Cocos2d-x

API Reference: C2SModuleSns_Login

  • bool C2SModuleSns_Login(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
    C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);

iOS

API Reference: C2SModuleSns Login

  • +(BOOL)Login:(id)arg error:(NSError**)error;

Hive 로그인

Hive 로그인은 Hive에 가입하여 계정을 생성하거나, Google+, Facebook 계정과 연동을 통해 생성된 계정을 이용하여 로그인하는 것을 의미한다. Hive 로그인은 다음 3가지 경우에 구현한다.

  • 로그인 타입 확인의 결과가 platform일 경우
  • 게임 타이틀에서 유저가 Hive 로그인 버튼을 클릭 시
  • 게스트 로그인 상태에서 유저가 Hive 로그인 버튼을 클릭 시

게스트 로그인 상태에서 Hive 계정으로 로그인을 하게 되면 Hive 내부적으로 게스트 유저의 VID에 Hive 유저의 UID를 매핑하여 Hive로 전환을 하게 된다.

  • Select User가 발생하는 경우

  • 예외 상황
    Select User 상황에서 로그인 된 Hive 계정이 VID 제재된 상황
    유저가 제재 계정을 선택한 경우, 해당 계정에 대한 제재 안내 팝업을 띄우고 LIVE 로그인 세션을 삭제한다. 이후 다시 Hive 계정 전환을 하려면 재로그인이 필요하다. 또한, 유저가 Hive 계정 전환에 실패 시 게스트 계정 상태로 유지된다.

자동 로그인

Hive 로그인 세션이 존재하면 세션을 통해서 자동으로 로그인하는 것이 가능하다.

Login Sessionkey 만료

로그인 시 Invalid Sessionkey (10) 에러가 발생 할 경우 세션이 유효하지 않은 상황으로 자동 로그인이 불가하다. 이때 수동 로그인으로 전환이 필요하며 게임 화면에 Hive 로그인 버튼을 노출 해야 한다.

Hive 로그인: C2SModuleSns_Login

로그인을 요청한다.

Request
argument name type desc platform 비고
type string “guest” : 게스트 로그인을 요청한다.
“select” : 생성된 게스트 유저 vid와 Hive 유저 vid의 데이터를 선택하는 웹뷰를 띄운다.
“customSelect” : selectVid로 Hive 유저 전환 요청한다.(1.10.1+)
(게스트 vid와 Hive 유저 vid의 데이터를 선택하는 자체 UI에서 선택한 유저의 vid 를 호출)
N/A: Hive 로그인을 요청한다.
all
showGuestLogin string true: IdP 리스트 로그인 페이지에 게스트 버튼을 노출한다. type이 N/A인 경우만 사용 가능하다. 또한 showGuestLogin 설정은 Google Play Games for PC를 적용한 경우만 사용 가능하다. (예: Hive 1.20.2.3을 사용하여 Android 빌드에 GPG for PC를 적용하였다면 Hive 1.20.2.3을 사용하는 iOS 빌드도 showGuestLogin 설정 필요, 자세한 설명은 하단에 ‘IdP 로그인 페이지’ 설명 참고)
false: IdP 리스트 로그인 페이지에 게스트 버튼을 노출하지 않는다. (로그아웃 이후 타이틀 이동 후 로그인 화면을 띄우거나 게스트 상태에서 정식 계정 전환시 게스트 버튼을 노출하지 않도록 false로 설정합니다)
all
type = “select” 일 때
currentVidData Dictionary 현재 게스트 데이터 all
usedVidData Dictionary Hive 유저 게임 데이터 all
type = “customSelect” 일 때
selectVid string Hive 유저 전환 요청 vid all 1.10.1+
Response

로그인 결과값을 받는다. (Hive 로그인일 때)

  • 정식 로그인 시
argument name type desc platform 비고
vid string 로그인 센터 vid – 유저 식별자로 유니크한 값 all
uid string Hive 로그인시 발급되는 유니크한 값 all
sessionToken string session key all
  • Select 상황 발생 시
argument name type desc platform 비고
type string “select” all
currentVid string 현재 로그인한 vid all
usedVid string 매칭되는 Hive 유저의 vid all
  • showGuestLogin = true 로 호출한 경우

유저가 Hive 정식 로그인을 진행하였다면 위 ‘정식 로그인 시’ 와 동일한 결과를 갖는다. 그러나, 노출된 Hive 로그인 페이지에서 ‘게스트 로그인’ 버튼을 수행하였을 경우 C2SModule.Error 값으로 NeedGuestLogin(-202) 값을 받는다. 이런 경우 유저가 게스트 로그인을 원하는 상황이기 때문에 이후 C2SModuleSns_Login을 type = guest 로 다시 호출하여 게스트 로그인을 진행한다. 자세한 설명은 하단 ‘IdP 로그인 페이지’를 참고한다.

샘플 코드
Unity®

API Reference: C2SModule.Sns.Login

  • public static bool C2SModule.Sns.Login(C2SModule.Parameter arg, out C2SModule.Error error) ;
  • public static bool C2SModule.Sns.Login(C2SModule.Parameter arg, out C2SModule.Error error, C2SModule.CompletionHandler completionHandler);

Unreal

API Reference: HiveSDKUESns_Login

  • void HiveSDKUESns_Login(FString fstrJson);

Cocos2d-x

API Reference: C2SModuleSns_Login

  • bool C2SModuleSns_Login(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
    C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);

iOS

API Reference: C2SModuleSns Login

  • +(BOOL)Login:(id)arg error:(NSError**)error;

IDP 로그인 페이지

Hive 1.20.2.3 버전부터 Android 빌드가 Google Play Games for PC를 적용한 경우 C2SModuleSns_Login 호출 시 IdP 로그인 페이지를 노출할 수 있다. Android의 GPG for PC 적용 상태에 영향을 받아 iOS 빌드도 IdP 로그인 페이지로 노출된다. (Hive 서버에서 제어됨) 단, 이 경우 iOS 빌드도 Hive 1.20.2.3 이상 버전이 적용되어야 한다.

IdP 로그인 페이지의 형태는 다음과 같다.

C2SModuleSns_Login 호출 시 Argument 값에 showGuestLogin = true 를 설정한 경우 게스트 로그인 버튼을 노출할 수 있다. 유저가 게스트 로그인 버튼을 누른 경우 C2SModuleSns_Login 콜백의 error 값으로 NeedGuestLogin(-202)가 전달된다. 이 경우 다시 C2SModuleSns_Login에 type = guest 값을 설정 후 호출하여 게스트 로그인을 진행시킨다.

게스트 버튼을 노출하고 싶지 않은 경우 showGuestLogin = false 값을 설정하여 C2SModuleSns_Login을 호출한다(예: C2SModuleSns_Logout 후 다시 로그인 유도 시). IdP 로그인 페이지를 통해 게스트 버튼을 활성화할 수 있기 때문에 게임앱에선 자체구현하고 있는 ‘게스트 로그인’, ‘Hive 로그인’ 2개의 버튼을 제거하고 하나의 ‘로그인’ 버튼으로 로그인을 유도한다.

IdP 로그인 페이지를 활용한 Android, iOS 로그인 플로우는 아래를 참고한다.
 
 
 
 

안드로이드 로그인 플로우

 
 
 
 

iOS 로그인 플로우

로그아웃

로그아웃을 한다.

Request
argument name type desc platform 비고
Hive 정식 유저 로그아웃
argumet 없음
회원 탈퇴 후 로그아웃 (게스트, Hive 정식 유저 탈퇴에 해당)
type string “userExit” all 1.19.5.2, 1.20.0+
Response
argument name type desc platform 비고
argument는 없으며 로그아웃 완료 후 Result Callback 전달
샘플 코드
Unity®

API Reference: C2SModule.Sns.Logout

  • public static bool C2SModule.Sns.Logout(C2SModule.Parameter arg, out C2SModule.Error error) ;
  • public static bool C2SModule.Sns.Logout(C2SModule.Parameter arg, out C2SModule.Error error,
    C2SModule.CompletionHandler completionHandler);

Unreal

API Reference: HiveSDKUESns_Logout

  • void HiveSDKUESns_Logout(FString fstrJson);

Cocos2d-x

API Reference: C2SModuleSns_Logout

  • bool C2SModuleSns_Logout(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
    C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);

iOS

API Reference: C2SModuleSns Logout

  • +(BOOL)Logout:(id)arg error:(NSError**)error;
  • +(BOOL)Logout:(id)arg error:(NSError**)error completionHandler:(void(^)(NSDictionary *, NSError*))
    completionHandler;

인증 에러 코드

Hive Module error code code desc
Success 0 성공
Server Error 1 서버 내부 에러
Invalid AppID 2 등록되지 않은 AppID
Invalid GameID 3 등록되지 않은 GameID (현재는 AppID만 보고 판단하므로 미사용)
Invalid Api 4 유효하지 않은 API 호출
Invalid platform 5 유효하지 않은 platform (현재는 Hive만 사용하므로 미사용)
Invalid account 6 발급되지 않았거나 유효하지 않은 VID
Invalid Sessionkey 10 유효하지 않은 세션. 해당 VID의 세션키가 변경되었거나 잘못된 세션키를 보냈을 경우.
Kakao server connect error 100 Hive 로그인시 카카오 서버로 세션검증을 위한 연결 시도 실패 (현재 카카오는 지원 안함)
Kakao auth error 101 Hive 로그인시 카카오서버를 통한 카카오 계정 세션검증 실패 (현재 카카오는 지원 안함)
Hub server connection error 102 Hive 로그인시 Hive 소셜 서버로 세션검증을 위한 연결 시도 실패
Hub auth error 103 Hive 로그인시 Hive 소셜 서버를 통한 UID 세션검증 실패
database connect fail 1000 내부 Database 연결 실패로 처리 불가 상태
database error 1001 Database 연결은 되었으나 처리를 할 수 없는 에러 발생
blocking 2000 블럭된 유저(vid, uid, did)로 로그인 실패