로그인 후, 유저가 현재 이용 중인 PlayerID의 연동 상태를 표시하고 다른 IdP (ID Provider, 이하 IdP)와 연동할 수 있도록 제공해야 합니다. 게임의 설정 메뉴 안에 IdP 연동 상태를 표시하고 IdP 연동 및 해제를 할 수있도록 UI를 구성해 주세요.

IdP 연동 상태 정보 확인

AuthV4 클래스의 getPlayerInfo() 메서드를 이용하여 현재 로그인된 PlayerID에 연동된 IdP 리스트를 확인할 수 있습니다. 게임 내 설정 화면에서 어떤 IdP와 연동되어 있는지 확인할 수 있도록 UI를 구성하고 IdP 연동을 유도하는 문구를 노출하세요.

게임 내 설정 화면에서는 IdP 연동 정보와 함께 유저의 PlayerID를 표시해야 합니다. PlayerID는 CS Code로 표기 후 현재 로그인된 유저의 PlayerID 값을 노출해야 합니다.

  • 현재 로그인된 PlayerID에 연동된 IdP를 확인하는 예시 화면

다음은 연동 상태 표시를 위해 현재 PlayerID에 연동된 IdP 리스트를 가져오는 예제 소스입니다.

Unity®

API Reference: hive.AuthV4.getPlayerInfo

C++

API Reference: AuthV4::getPlayerInfo

Android

API Reference: com.hive.AuthV4.getPlayerInfo

iOS

API Reference: HIVEAuthV4:getPlayerInfo

IdP 연동을 유도하는 문구
언어 문구
한국어 계정 연동을 통해 플레이 데이터를 안전하게 지키세요!
영어 Sync your account to protect your game data!
일본어 アカウントを連動してプレイデータを守りましょう!
중국어 간체 绑定账号,保护游戏数据安全吧!
중국어 번체 綁定帳號,保護帳號資料安全!
프랑스어 Synchronise ton compte afin de protéger tes données de jeu !
독일어 Synchronisiere dein Konto, um deine Spieldaten zu schützen!
러시아어 Синхронизируйте аккаунт, чтобы обезопасить игровые данные.
스페인어 ¡Sincronicen su cuenta para proteger sus datos del juego!
포르투갈어 Sincronize sua conta para proteger seus dados de jogo!
인도네시아어 Hubungkan akunmu untuk mengamankan data game milikmu!
말레이시아어 Segerakkan akaun kamu untuk melindungi data permainanmu!
베트남어 Vui lòng liên kết tài khoản để bảo vệ an toàn cho dữ liệu game của bạn!
태국어 ซิงค์บัญชีเพื่อปกป้องข้อมูลเกมของคุณ!
이탈리아어 Sincronizza il tuo account per proteggere i tuoi dati di gioco.
터키어 Oyun verilerini korumak için hesabınızı senkronize ediniz.
아랍어 زامن حسابك لحماية بيانات اللعبة الخاصة بك!

IdP 연동

현재 로그인된 PlayerID는 새로운 IdP 연동을 추가할 수 있습니다. 만약 다른 PlayerID에 이미 연동된 IdP를 연동하려고 할 때는 에러가 반환됩니다. 연동에 성공한 경우 연동 상태 정보를 다시 확인하여 연동 정보 UI를 업데이트 해주세요.

IdP 연동 시 추가하려는 IdP가 다른 PlayerID에 연동되어 있는 경우를 계정 충돌 상황이라고 합니다. 해당 부분을 구현하려면 IdP 연동 시 계정 충돌 상황 처리를 참고하세요.

IdP 연동을 위해서는 연동하려는 ProviderType을 파라미터로 넣고 connect() 메서드를 호출하세요. 다음은 IdP 연동을 구현한 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.connect

C++

API Reference: AuthV4::connect

Android

API Reference: com.hive.AuthV4.connect

iOS

API Reference: HIVEAuthV4:connect

IdP 연동 시 계정 충돌 상황 처리

IdP 연동을 위해 connect() 호출 시 유저가 연동하려는 IdP 계정이 이미 다른 PlayerID에 연동되어 있는 경우 계정 충돌 상황이 발생하며 계정 충돌 에러와 함께 충돌이 발생한 계정의 PlayerID를 반환합니다. 다음 설명에서 현재 로그인된 계정을 CurrentPlayer, 충돌이 발생한 계정을 ConflictPlayer라고 칭합니다.

계정 충돌 상황이 발생하면 게임에서는 ConflictPlayer의 게임 정보를 유저에게 알려주고 ConflictPlayer를 선택할 수 있는 UI를 노출합니다. 계정 선택 UI는 HIVE SDK에서 제공하는 UI를 이용하거나 게임에서 커스터마이징 할 수도 있습니다. 계정 선택 UI를 커스터마이징 하는 경우 IdP 충돌 상황 시 커스터마이징 항목을 참고하세요.

HIVE SDK에서 제공하는 UI를 사용하기 위해 ConflictPlayer의 정보를 게임에 맞도록 구성하고 ConflictPlayer의 정보를 파라미터로 showConflictSelection() 메서드를 호출하세요. 호출 시 ConflictPlayer로 계정을 변경하거나 취소를 선택하여 IdP 연동 정보 변경 없이 CurrentPlayer로 게임을 계속 진행할 수 있습니다.

  • HIVE SDK에서 제공하는 계정 선택 화면

계정 선택 시 주의점

게임 데이터 구성

ConflictPlayer 정보는 player_idgame_data로 구성되며 두 키는 필수입니다.

    • player_id : ConflictPlayer의 PlayerID
    • game_data : Map<String, Object > 형태로 게임에 맞게 구성.(게임 캐릭터 명, 재화량, 레벨 등)

다음은 ConflictPlayer의 데이터를 구성한 예시입니다.

HIVE SDK의 계정 선택 UI 호출

ConflictPlayer의 데이터 정보 구성이 완료되었다면 showConflictSelection() 메서드를 호출하여 SDK 제공하는 UI를 노출하게 되며 유저의 선택이 결과로 반환됩니다. 결과 값이 성공이고 유저가 ConflictPlayer를 선택했을 경우에는 다시 게임데이터를 불러와야 합니다. 유저가 취소를 하거나 계정 선택에 오류가 발생 시 결과는 실패로 반환되며 이 경우에는 현재 상태 그대로 게임을 진행하도록 합니다.

다음은 충돌이 발생한 PlayerID의 게임 데이터 정보를 구성하여 HIVE SDK가 제공하는 UI를 호출 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.showConflictSelection

C++

API Reference: AuthV4::showConflictSelection

Android

API Reference: com.hive.AuthV4.showConflictSelection

iOS

API Reference: HIVEAuthV4:showConflictSelection

IdP 연동 해제

연동 목록에서 이미 연동되어 있는 상태를 유저가 해제하게 할 수 있습니다. IdP 연동 해제를 위해서는 연동을 해제하려는 ProviderType을 파라미터로 disconnect() 메서드를 호출합니다. disconnect() 메서드를 이용하여 연동 해제를 성공했다면 유저의 연동 상태 정보를 다시 확인하여 연동 목록 UI를 업데이트 해줍니다.

다음은 연동 해제를 구현하는 예제 코드입니다.

Unity®

API Reference: hive.AuthV4.disonnect

C++

API Reference: AuthV4::disonnect

Android

API Reference: com.hive.AuthV4.disonnect

iOS

API Reference: HIVEAuthV4:disonnect

상황에 따른 알럿 문구

연동 해제 시 상황에 따라 유저에게 적절한 알럿을 노출해주세요.

  • IdP 연동 정보가 하나일 때 해제하려는 경우
언어 문구
한국어 최소 1개의 계정 연동을 유지해야 합니다.
영어 You must keep at least 1 of your accounts synced.
일본어 少なくとも1つのアカウントを連動しなければなりません。
중국어 간체 需要绑定至少1个账号。
중국어 번체 至少要有1個帳號是綁定的!
프랑스어 Tu dois garder au moins l’un de tes comptes synchronisés.
독일어 Du musst mindestens 1 deiner Konten synchronisieren.
러시아어 Хотя бы 1 из аккаунтов должен быть синхронизирован.
스페인어 Debe de mantener al menos 1 de sus cuentas sincronizada.
포르투갈어 É necessário sincronizar pelo menos 1 das suas contas.
인도네시아어 Kamu harus punya paling tidak satu akun yang terhubung.
말레이시아어 sekurang-kurangnya kamu harus simpan 1 akaun yang segerak.
베트남어 Bạn cần phải duy trì ít nhất 1 liên kết tài khoản.
태국어 ต้องซิงค์บัญชีอย่างหน่อย 1 บัญชี
이탈리아어 Devi mantenere almeno 1 dei tuoi account sincronizzato.
터키어 En az 1 hesabınızı senkronize etmeniz gerekmektedir.
아랍어 يجب أن تحتفظ على الأقل بحساب واحد متزامن من بين حساباتك.
  • 게임에서 연동 해제를 제한할 경우
언어 문구
한국어 계정 연동은 해제할 수 없습니다.
영어 Account sync can’t be disabled.
일본어 アカウント連動は解除できません。
중국어 간체 无法解除账号绑定。
중국어 번체 無法解除綁定。
프랑스어 La synchronisation de compte ne peut pas être désactivée.
독일어 Konto-Sychronisierung kann nicht deaktiviert werden.
러시아어 Невозможно отменить синхронизацию аккаунта.
스페인어 Una sincronización de cuenta no puede ser desactivada.
포르투갈어 A sincronização de conta não pode ser desativada.
인도네시아어 Penghubungan akun tidak bisa dihapus.
말레이시아어 Penyegerakan akaun tidak dapat dihapus.
베트남어 Liên kết tài khoản không thể được gỡ bỏ.
태국어 ไม่สามารถปิดการซิงค์บัญชีได้
이탈리아어 La sincronizzazione account non può essere disattivata.
터키어 Hesap senkronizasyonu devre dışı bırakılamaz.
아랍어 لا يمكن تعطيل مزامنة الحساب.
  • 연동 해제 후 게스트 상태가 되었을 경우
Language Presentation
한국어 계정 연동이 없어 게스트 상태로 전환되었습니다. 게스트 상태에서 게임 삭제 시 데이터가 삭제됩니다.
영어 You have been transferred to a Guest Account because you don’t have any account synced. Your game data will be deleted if you delete the game while playing as a guest.
일본어 アカウントが連動されていないため、ゲストアカウントに切り替えられました。ゲストアカウントの場合、ゲームを削除するとデータも消えてしまいます。
중국어 간체 未绑定账号,已转换为游客状态。游客状态下删除游戏客户端时,数据也会消失。
중국어 번체 因為沒有綁定,目前將以訪客帳號登入。訪客帳號登入時,當遊戲刪除或變更設備時, 遊戲資料將無法保留。
프랑스어 Tu a été transféré vers un compte invité car tu n’as pas de compte synchronisé. Tes données de jeu vont être supprimées si tu supprimes le jeu en jouant en invité.
독일어 Du wurdest auf ein Gastkonto übertragen, weil Du kein Konto synchronisiert hast. Deine Spieldaten werden gelöscht, wenn Du als Gast das Spiel deinstallierst.
러시아어 Аккаунт не синхронизирован: вы были переведены на гостевой аккаунт.
스페인어 Has sido transferido a una Cuenta de Invitado porque no tiene ninguna cuenta sincronizada. Sus datos del juego serán borrados mientras juegue como invitado.
포르투갈어 Você foi transferido para uma Conta de Visitante porque não há nenhuma conta sincronizada. Seus dados de jogo serão perdidos se o jogo for deletado caso esteja jogando com uma Conta de Visitante.
인도네시아어 Kamu akan ditransfer ke akun Guest karena kamu tidak punya akun terhubung. Data game akan terhapus jika kamu menghapus game selama bermain sebagain Guest.
말레이시아어 Kamu telah dipindah ke akaun tetamu kerana tidak mempunyai akaun yang disegerakkan. Data permainan akan terhapus jika kamu bermain dan menghapuskan permainan sebagai tetamu.
베트남어 Tài khoản của bạn đã được chuyển sang Tài Khoản Khách do bạn đã không liên kết tài khoản. Dữ liệu game của bạn sẽ bị xóa nếu bạn xóa game khi đang chơi ở tài khoản khách.
태국어 กลับมาใช้บัญชี Guest เนื่องจากคุณไม่ได้ซิงค์บัญชีใด ๆ ไว้ หากคุณเล่นโดยใช้บัญชี Guest และลบเกม ข้อมูลเกมจะสูญหายทั้งหมด
이탈리아어 Sei stato trasferito a un Account Ospite perché non hai alcun account sincronizzato. I tuoi dati di gioco verranno persi se elimini il gioco mentre sei ancora in modalità Ospite.
터키어 Senkrone edilmiş bir hesabınız olmadığı için Misafir Hesabına transfer edildiniz. Misafir hesabıyla oynarken oyunu silerseniz oyun verileri de silinecektir.
아랍어 لقد تم نقلك إلى حساب ضيف لأنك لا تمتلك أي حساب مزامن. سيتم حذف بيانات اللعبة الخاصة بك إذا قمت بحذف اللعبة أثناء اللعب كضيف.