로그인·로그아웃하기

로그인

인증에서 로그인은 다음의 순서로 구성합니다.

다음은 위 순서로 구성된 인증의 플로우 차트입니다.

로그인 구성 시 다음 사항을 참고하세요.

자동 로그인

인증에서는 IdP 종류에 관계 없이 모든 유저에 대해 로그인 인증 토큰 키를 반환하며, 이 인증 토큰 키가 존재하는 경우 자동 로그인을 수행해야 합니다.

HIVE SDK 초기화 시 결과로 받은 자동 로그인 가능 여부를 이용하거나 isAutoSignIn()을 호출하여 자동 로그인 가능 여부를 체크하고 isAutoSignIn() 값이 true일 경우, ProviderType.AUTO를 파라미터로 signIn()을 호출하여 자동 로그인을 구현하세요.

다음은 자동 로그인을 수행하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Android

API Reference: com.hive.Auth4.signIn

iOS

API Reference: HIVEAuth4:signIn

오프라인 모드 (Hive SDK v4 23.1.0+)

Hive SDK v4 23.1.0 이상에서는 유저 기기가 네트워크에 연결되지 않은 상태에서 앱을 실행했더라도 자동 로그인(ProviderType.AUTO를 사용하는 AuthV4.signIn) 기능을 제공할 수 있습니다. 오프라인 모드를 사용하려면 다음 단계를 따르세요.

  1. 온라인 상태에서 앱을 실행하여 명시적, 묵시적, 게스트, 또는 커스텀 로그인에 성공하고, playerIdplayerToken을 발급받은 적이 있어야 합니다. 즉, 앱 개발사 입장에서는 온라인 상태에서 최소 한 번 이상 AuthV4.signIn 또는 AuthV4.showSignIn 실행에 성공하여 콜백으로 playerIdplayerToken을 받은 적이 있어야 하며, 각 유저 입장에서는 유저 기기가 네트워크에 연결된 상태에서 최소 한 번 이상 앱에서 로그인에 성공했어야 합니다.
  2. Hive 콘솔 앱센터 > 프로젝트 관리 > 게임 상세 > Hive 제품설정에서 오프라인 모드를 활성화합니다.

기기에 로그인된 IdP 계정 확인

자동 로그인의 경우 저장된 playerId 의 인증 토큰 키만으로 로그인되기 때문에 로그인된 PlayerID의 IdP계정과 실제 단말에 로그인 된 IdP 계정이 다를 수 있습니다. 단말에 로그인 된 IdP계정은 checkProvider()를 호출하여 확인할 수 있습니다. 현재 로그인된 PlayerID의 IdP 계정을 CurrentPlayer, 실제 단말에 로그인된 IdP 계정을 DevicePlayer라고 칭합니다.

checkProvider()는 자동 로그인 성공 후, 다음 조건에 만족할 때 호출합니다.

    • Apple (iOS) 빌드이고 로그인 된 PlayerID에 Apple Game Center가 연동되어 있는 경우
    • Google 빌드이고 유저의 국가가 중국이 아니며 로그인 된 PlayerID에 Google Play 게임이 연동되어 있는 경우

게임에서는 checkProvider()의 결과로 반환된 DevicePlayer와 CurrentPlayer를 비교하여 다를 경우 DevicePlayer를 사용할지 여부를 유저에게 선택할 수 있도록 UI를 구성합니다. 유저가 DevicePlayer를 선택하였다면, CurrentPlayer를 signOut을 호출하여 로그아웃 시킨 후, 묵시적 로그인을 진행합니다. checkProvider() 호출에 실패했거나 두 계정이 동일할 경우 자동 로그인 상태를 유지하며 게임에 진입합니다.

  • DevicePlayer를 사용할지 여부를 묻는 UI 예시 스크린샷

다음은 IdP 정보를 확인하는 예제 코드입니다.

Unity®

API Referencehive.AuthV4.checkProvider

C++

API Reference:AuthV4.checkProvider

Android

API Referencecom.hive.AuthV4.checkProvider

iOS

API ReferenceHIVEAuthV4:checkProvider

묵시적 로그인

묵시적 로그인이란 유저가 로그인 수단을 선택하지 않고 iOS에서는 Apple Game Center의 계정을, Android에서는 Google Play 게임의 계정을 자동 연동하여 로그인되는 방식을 의미합니다. 자동 로그인을 구현하고 자동 로그인에 실패 후 묵시적 로그인을 수행합니다.

묵시적 로그인에 성공했다면 게임 타이틀 화면으로 이동하며 타이틀 화면에서 클릭 시, 게임 로비로 진입하도록 구현하세요.

묵시적 로그인 스크린샷

묵시적 로그인을 수행하기 위해서는 디바이스의 OS에 따라 iOS의 경우 ProviderType.APPLE을 파라미터로 Android (Google 빌드)의 경우 ProviderType.GOOGLE을 파라미터로 signIn() 메서드를 호출하세요.

다음은 묵시적 로그인을 수행하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Android

API Reference: com.hive.Auth4.signIn

iOS

API Reference: HIVEAuth4:signIn

명시적 로그인

명시적 로그인이란 유저가 인증을 진행할 IdP를 선택하여 진행하는 것을 의미합니다. 자동 로그인, 묵시적 로그인에 모두 실패했다면 게임 타이틀 화면으로 이동 후, 타이틀에서 클릭 시 명시적 로그인을 수행하도록 구현하세요.

명시적 로그인 UI는 HIVE SDK에서 제공하는 UI를 사용할 수도 있고 HIVE SDK 초기화가 완료 후 결과로 반환되는 인증에 사용할 IdP 리스트를 이용하여 게임 자체 구현으로 커스터마이징 할 수 있습니다. UI를 커스터마이징 하는 경우 명시적 로그인 커스터마이징 항목을 참고하세요.

IdP 리스트는 각 국가의 정책에 따라 HIVE 플랫폼에서 제어하여 제공됩니다. 예를 들어, 중국에서는 Google Play 게임 및 Facebook, 게스트가 제공되지 않습니다.

명시적 로그인 스크린샷

SDK에서 제공하는 IdP 선택 UI

SDK에서 제공하는 UI를 사용하여 구현하는 경우

SDK에서 제공하는 UI를 사용하여 명시적 로그인을 구현하기 위해서는 showSignIn() 메서드를 호출하여 IdP 리스트 UI를 간단히 호출 할 수 있습니다.

Unity®

API Reference: hive.AuthV4.showSignIn

C++

API Reference: AuthV4::showSignIn

Android

API Reference: com.hive.AuthV4.showSignIn

iOS

API Reference: HIVEAuthV4:showSignIn

게스트 로그인

유저가 IdP를 선택하지 않고 게스트 상태로 게임을 이용할 수 있도록 게스트 로그인 기능을 지원합니다. HIVE SDK가 제공하는 명시적 로그인 UI에서 게스트를 선택할 수도 있고, 게임에서 커스터마이징하여 직접 구현하는 경우에도 게스트 로그인을 구현할 수 있습니다.

게스트 로그인 시에는 다음의 정책을 반드시 준수해야 합니다.

게스트 로그인 정책
    • IdP 인증 유저와 게스트 유저 모두 게임을 동일하게 이용할 수 있게 구현하세요.
      게스트 로그인 시에도 HIVE 플랫폼의 기능 대부분을 이용할 수 있습니다. 때문에 여러분의 게임에서도 게스트로 로그인한 유저가 IdP 연동 유저와 동일하게 게임을 이용할 수 있도록 구현해 주세요. 예를 들면 게스트 유저도 게임 내에서 아이템을 구매하고 결제할 수 있어야 합니다.
    • 게스트 유저에게 로그아웃 기능을 제공하지 마세요.
      유저가 게스트로 로그인 한 후 로그아웃을 하면 더 이상 동일한 PlayerID로 로그인이 불가합니다. 따라서 유저가 게스트로 로그인 했을 때는 로그아웃을 못하도록 로그아웃 버튼을 제공하지 마세요.
    • 중국 게스트 로그인 금지 정책
      중국 IP를 사용할 경우에는 실명 인증된 유저만 재화를 충전·소비하는 서비스가 가능(17. 5. 1시행)하므로 중국 IP로 로그인할 수 있는 IdP 목록에 게스트 로그인이 포함되지 않습니다.

게스트 로그인을 수행하기 위해서는 ProviderType.GUEST를 파라미터로 signIn() 메서드를 호출하세요.
다음은 게스트 로그인을 수행하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Android

API Reference: com.hive.Auth4.signIn

iOS

API Reference: HIVEAuth4:signIn

인증 토큰키 유효성 검증

게임 서버에서는 로그인 성공 후 반환 된 token, playerId, did 정보를 이용하여 인증 토큰키의 유효성을 검증할 수 있습니다. HIVE 인증에서는 멀티 디바이스 로그인과 중복 접속을 허용합니다. 따라서 게임에서 중복 접속을 허용하지 않는 경우, 검증이 완료된 토큰키를 관리하거나 이를 이용한 게임 자체의 세션키를 관리하여 해당 기능을 구현해야 합니다.

해당 기능은 인증 토큰키 유효성 검증 Server API를 참고하여 구현하세요.

백그라운드에서 IdP 계정 변경 감지

유저가 게임 실행 중에 기기 설정으로 이동하여 Apple Game Center 또는 Google Play 게임 계정을 변경할 수 있습니다. 게임 실행 중에 IdP 계정이 현재 PlayerID에 IdP 계정과 다른지 여부를 확인해야 하는 경우 setProviderChangedListener()를 SDK 초기화 이후 호출하세요. 해당 API를 호출하면 게임 Resume시 기기에 설정된 IdP계정이 변경되었다는 이벤트를 받을 수 있습니다.

iOS는 Apple Game Center, Android는 Google Play 게임의 계정이 변경 시에 동작하며 현재 로그인 된 PlayerID가 해당 IdP에 연동되어 있을 경우에만 응답이 전달됩니다. IdP 계정 변경 이벤트를 받을 경우, 유저에게 기기에 로그인된 IdP 계정을 사용할지 여부를 유저에게 선택할 수 있도록 UI를 구성합니다. 유저가 기기에 로그인된 IdP 계정을 선택하면, signOut을 호출하여 로그아웃 시킨 후, 묵시적 로그인을 진행합니다.

게임 Resume시 기기에 설정된 IdP계정이 변경되었다는 이벤트를 받도록 설정하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.setProviderChangedListener

C++

API Reference: AuthV4::setProviderChangedListener

Android

API Reference: com.hive.AuthV4.setProviderChangedListener

iOS

API Reference: HIVEAuthV4:setProviderChangedListener

로그아웃

HIVE 로그인을 수행하였다면 PlayerID 와 인증 토큰 키가 발급된 상태입니다. 로그아웃이란 PlayerID와 인증 토큰 키를 초기화 하는 기능을 수행합니다. signOut()을 호출하여 로그아웃이 완료되면 게임 타이틀로 이동하고 타이틀 클릭 시 명시적 로그인을 수행합니다.

다음은 로그아웃을 수행하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.signOut

C++

API Reference: AuthV4::signOut

Android

API Reference: com.hive.AuthV4.signOut

iOS

API Reference: HIVEAuthV4:signOut

Game Center 취소 안내 문구
언어 문구
한국어 Apple Game Center 로그인이 취소되었습니다.
Game Center 계정과 연동하려면 [설정 > Game Center]에서 로그인한 후 다시 시도해주세요.
영어 Your login to the Game Center has been canceled.
Log in at [Settings> Game Center] to sync to the Game Center Account and try again.
일본어 Apple Game Center ログインがキャンセルされました。
Game Center アカウントと連動するには [設定 > Game Center] にログインした後、再度お試しください。
중국어 간체 Apple Game Center已退出登录。
若想与Game Center账号同步,请在设备[设置>Game Center]中重新登录后再试。
중국어 번체 登入Apple Game Center已取消。
若想連動Game Center帳號,請至[設定 > Game Center]登入後,再試一次。
프랑스어 Ta connexion au Game Center a été annulée.
Connecte-toi dans [Réglages > Game Center] pour synchroniser ton compte Game Center et essaie de nouveau.
독일어 Das Einloggen ins Apple Game Center wurde abgebrochen.
Die Synchronisation mit dem Game Center-Konto läuft über [Einstellungen > Game Center]. Logge dich ein und versuche es erneut.
러시아어 Ваш авторизация в Game Center была отменена.
Авторизуйтесь в Game Center через [Настройки > Game Center] и повторите попытку.
스페인어 Tu Inicio de Sesión en Game Center ha sido cancelado.
Inicia Sesión en [Configuración>Game Center] para sincronizar a la Cuenta de Game Center, e inténtalo de nuevo.
포르투갈어 O seu login no Game Center foi cancelado.
Faça o login em [Configurações>Game Center] para sincronizar com a Conta do Game Center e tente novamente.
인도네시아어 Login ke Apple Game Center telah dibatalkan.
Hubungkan akun Game Center dengan login di [Pengaturan > Game Center] dan coba lagi.
말레이시아어 Log masuk ke Game Center anda telah dibatalkan.
Log masuk di [Tetapan>Game Center] untuk disegerakkan ke Akaun Game Center dan cuba lagi.
베트남어 Đã hủy bỏ đăng nhập vào Apple Game Center.
Đăng nhập tại [Cài đặt > Game Center] để đồng bộ với tài khoản Game Center và thử lại.
태국어 การล็อกอินเข้า Game Center ของคุณถูกยกเลิก
ล็อกอินที่ [การตั้งค่า>Game Center] เพื่อเชื่อมต่อบัญชี Game Center และโปรดลองอีกครั้ง
이탈리아어 L’accesso all’Apple Game Center è stato annullato.
Fai log-in su [Impostazioni > Game Center] per sincronizzare il tuo account con il Game Center e riprova.
터키어 Apple Oyun Merkezine girişiniz iptal edilmiştir.
Oyun Merkezi Hesabına ulaşmak için [Ayarlar>Oyun Merkezi]’nden giriş yapın ve tekrar deneyin.
아랍어 تم إلغاء تسجيل الدخول إلى مركز الألعاب.
سجل الدخول إلى [الإعدادات> مركز الألعاب] للمزامنة مع حساب مركز الألعاب وحاول مرة أخرى.