로그인·로그아웃하기

로그인

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

Authv4Helper는 로그인과 관련된 일련의 과정을 수행하며, 응답 값에 따라 적절한 화면으로 이동하도록 구성하는 클래스입니다.

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

자동 로그인 및 묵시적 로그인

자동 로그인

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

오프라인 모드

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

  1. 온라인 상태에서 앱을 실행하여 명시적, 묵시적, 게스트, 또는 커스텀 로그인에 성공하고, playerIdplayerToken을 발급받은 적이 있어야 합니다.

    앱 개발사 입장에서는 온라인 상태에서 최소 한 번 이상 AuthV4.Helper.signIn, AuthV4.showSignIn, 또는 AuthV4.signInWithAuthKey 실행에 성공하여 콜백으로 playerIdplayerToken을 받은 적이 있어야 하며, 유저 입장에서는 유저 기기가 네트워크에 연결된 상태에서 최소 한 번 이상 앱에서 로그인에 성공했어야 합니다. 단, 유저가 온라인 상태에서 마지막으로 로그인을 시도했을 때 유저 계정이 이용 정지 또는 이용 제한 상태였다면, 유저는 오프라인 모드에서도 로그인할 수 없습니다.

  2. Hive 콘솔 앱센터 > 프로젝트 관리 > 게임 상세 > Hive 제품설정에서 오프라인 모드를 활성화합니다.
Windows 환경에서 자동 로그인

Windows 환경도 자동 로그인을 지원하며, Hive 콘솔 앱센터에서 활성화/비활성화할 수 있습니다. 단, Windows 자동 로그인은 모바일과 다르게 동작합니다. Windows에서 자동 로그인은 다음과 같은 차이가 있습니다.

  • 모바일에서는 로그인 이후에 무조건 자동 로그인으로 로그인 상태를 유지하지만, Windows에서는 유저가 로그인 유지 체크박스(로그인 UI상에서 IdP 목록 하단에 표시)를 활성화한 경우에만 로그인을 유지합니다. 그 외 상황에서는 로그인을 유지하지 않습니다.
  • AuthV4Helper.Connect 실행 시 모바일에서는 새로운 계정으로 계정을 전환할 경우 새 계정도 자동 로그인 상태를 유지하지만, Windows에서는 새로운 계정으로 계정을 전환할 경우 새 계정은 자동 로그인 상태를 유지하지 않습니다.
묵시적 로그인
  • 묵시적 로그인 플로우

AuthV4.Helper.signIn은 PlayerID의 인증 토큰 키를 이용해 자동 로그인을 시도합니다. 기존에 로그인 했던 인증 토큰 키가 없다면 iOS인 경우 Apple Game Center에, Android인 경우 Google Play 게임에 자동으로 로그인합니다. 로그인을 실패하면 응답 값에 따라 적절한 로그인 화면을 구성합니다.

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

Unity®

API Reference: hive.AuthV4.Helper.signIn

C++

API Reference: Auth4::signIn

Kotlin

API Reference: com.hive.Auth4.Helper.signIn

Java

API Reference: com.hive.Auth4.Helper.signIn

Swift

API Reference: HIVEAuth4:signIn

Obj-C

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

Kotlin

API Reference: com.hive.AuthV4.showSignIn

Java

API Reference: com.hive.AuthV4.showSignIn

Swift

API Reference: HIVEAuthV4:showSignIn

Obj-C

API Reference: HIVEAuthV4:showSignIn

명시적 로그인 커스터마이징

명시적 로그인의 커스터마이징 UI는 providerTypeList를 이용해 구현할 수 있습니다. providerTypeList는 Hive SDK를 초기화할 목적으로 AuthV4.setup() 메서드를 호출하거나, 초기화 이후 AuthV4.Helper.getIDPList() 메서드를 호출했을 때 반환되는 응답 콜백 핸들러입니다. 게임 UI에 맞추어서 로그인 화면을 노출하거나 특정 IdP와의 연동만을 주로 노출하고 싶을 때 이 기능을 사용합니다. 커스터마이징 UI를 구현한 후에는 유저의 액션에 따라 원하는 ProviderType으로 signIn() 메서드를 호출해 로그인을 구현하세요.

  • 로그인 화면에 Facebook 연동 버튼만 노출하는 UI 예시 스크린샷

다음은 커스터마이징한 명시적 로그인 UI에서 유저가 Google 로그인을 선택한 상황을 가정한 예제 소스입니다.

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Kotlin

API Reference: AuthV4.signIn

Java

API Reference: com.hive.Auth4.signIn

Swift

API Reference: AuthV4Interface.signIn

Objective-C

API Reference: HIVEAuth4:signIn

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

자동 로그인은 저장된 PlayerID의 인증 토큰 키만으로 로그인하고, 명시적 로그인은 여러 IdP에 연동된 계정에 로그인합니다. 이 두 가지 경우 로그인 PlayerID의 IdP계정과 실제 단말에 로그인한 IdP 계정(DevicePlayer)이 다를 수 있습니다. 추후 업적이나 리더보드 사용에 대비해 두 계정을 통일할 수 있도록 안내 문구를 제공합니다.

  • SDK가 제공하는 DevicePlayer 사용 여부 확인 UI

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

Unity®

API Reference: AuthV4.Helper.syncAccount

C++

API Reference: AuthV4::Helper::syncAccount

Kotlin

API Reference: AuthV4.Helper.syncAccount

Java

API Reference: AuthV4.Helper.INSTANCE.syncAccount

Swift

API Reference: AuthV4Interface.helper().syncAccount

Objective-C

API Reference: [HIVEAuthV4 helper] syncAccount

게스트 로그인

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

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

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

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

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Kotlin

API Reference: AuthV4.signIn

Java

API Reference: com.hive.Auth4.signIn

Swift

API Reference: AuthV4Interface.signIn

Objective-C

API Reference: HIVEAuth4:signIn

커스텀 로그인

커스텀 로그인맞춤형 로그인 기능으로, Hive에서 제공하는 IdP 외에 게임 자체에서 연동하는 IdP로 로그인을 구현할 수 있습니다. 인증 v4 커스텀 인증하기에 따라 커스텀 로그인 API 호출 시 사용할 인증 키(authKey)를 생성해 보세요.
커스텀 로그인 API 호출 후 콜백으로 전달 받는 PlayerInfo 클래스 인스턴스로 customProviderInfoData 데이터에 접근하여 커스텀 로그인된 유저 정보를 확인할 수 있습니다. customProviderInfoDataProviderType(enum) 은 모두 CUSTOM으로 동일하게 설정되며, ProviderName(String)으로 상세히 구분할 수 있습니다.

  • 게임에서 커스텀 로그인을 구현한 IdP의 정보는 AuthV4 클래스의 setup()showSignIn() 메서드 호출 결과에 포함되지 않습니다.
  • 커스텀 로그인 최초 실행 후 playerIdplayerToken을 발급받았다면, 커스텀 로그인 API 재호출 시 authV4SessionExist(code)의 Result API가 콜백으로 전달됩니다. 이 경우에는 ProviderType.Auto를 파라미터로 signIn()를 호출하여 기존에 로그인된 계정으로 자동 로그인을 진행해야 합니다. 아래의 예제 코드를 참조하세요.
  • AuthV4 클래스의 connect()disconnect() 메서드는 커스텀 로그인 IdP의 추가 연동 및 해제를 지원하지 않습니다.
  • connectWithAuthKey()disconnectWithName() 메서드로 커스텀 로그인 IdP의 추가 연동 및 해제를 지원합니다.

다음은 커스텀 로그인을 구현하는 예제코드입니다.

Unity®

API Reference: hive.AuthV4.signIn

C++

API Reference: Auth4::signIn

Kotlin

API Reference: com.hive.Auth4.signIn

Java

API Reference: com.hive.Auth4.signIn

Swift

API Reference: HIVEAuth4:signIn

Obj-C

API Reference: HIVEAuth4:signIn

인증 토큰 키 유효성 검증

게임 서버에서는 로그인 성공 후 반환 된 Token, playerId, DID 정보를 이용하여 인증 토큰키의 유효성을 검증할 수 있습니다. Hive 인증에서는 멀티 디바이스 로그인과 중복 접속을 허용합니다.

동일한 계정으로 중복 접속을 허용하지 않을 경우, 게임 서버는 먼저 접속한 기기에 안내 메시지를 노출시킨 후 게임을 종료하고 나중에 접속한 기기에서 게임이 유지되도록 처리합니다. 이때 게임을 종료하지 않은 채 중복 접속할 경우 게임 플레이 기록이 정상적으로 반영되지 않을 수 있습니다. 해당 기능을 구현하려면 검증을 완료한 토큰 키를 관리하거나 이를 이용한 게임 자체의 세션 키를 관리하여 처리해야 합니다.

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

Hive 톡플러스 로그인 토큰 획득

인증 v4 인터페이스를 통해 signIn() 완료 후 AuthV4.getHiveTalkPlusLoginToken API를 호출하여 획득한 로그인 토큰을 Hive 톡플러스 로그인 시 사용합니다. (관련 가이드: Hive 톡플러스 로그인 가이드)

Unity®

Kotlin

Android

Swift

Objective-C

백그라운드에서 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을 호출하여 로그아웃 시킨 후, 묵시적 로그인을 진행합니다.

다음은 유저가 게임을 다시 시작했을 때, 기기에 설정된 IdP 계정이 변경되었다는 이벤트를 받도록 설정하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.setProviderChangedListener

C++

API Reference: AuthV4::setProviderChangedListener

Kotlin

API Reference: AuthV4.setProviderChangedListener

Java

API Reference: com.hive.AuthV4.setProviderChangedListener

Swift

API Reference: AuthV4Interface.setProviderChangedListener

Objective-C

API Reference: HIVEAuthV4:setProviderChangedListener

게임 데이터 초기화

게임 데이터를 초기화할 때 로그아웃을 호출하지 마세요. PlayerID가 삭제되지 않기 때문에 계정간 충돌이 발생할 수 있습니다. 현재 로그인한 계정으로 계속 플레이할 수 있어야 하므로 유저가 명시적으로 요청하기 전에는 로그아웃을 호출하지 않도록 구현하세요.

로그아웃

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

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

Unity®

API Reference: hive.AuthV4.signOut

C++

API Reference: AuthV4::signOut

Kotlin

API Reference: AuthV4.Helper.signOut

Java

API Reference: AuthV4.Helper.INSTANCE.signOut

Swift

API Reference: AuthV4Interface.helper().signOut()

Objective-C

API Reference: [HIVEAuthV4 helper] 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.
아랍어 تم إلغاء تسجيل الدخول إلى مركز الألعاب.
سجل الدخول إلى [الإعدادات> مركز الألعاب] للمزامنة مع حساب مركز الألعاب وحاول مرة أخرى.