다음을 통해 공유


계정 연결 빠른 시작

이 계정 연결 빠른 시작에서는 여러 디바이스 및 로그인 메커니즘에 계정을 바인딩하는 방법을 설명합니다.

단일 PlayFab 계정에 여러 디바이스 및 로그인 자격 증명을 통해 액세스할 수 있습니다. 로그인 기본 사항 및 모범 사례 자습서에서 설명하는 대로 사용자 인증의 형식은 다음 두 가지입니다.

  1. 익명
  2. 복구 가능

기존 익명 계정에 복구 가능 로그인 추가

처음 로그인은 익명인 경우가 아주 일반적입니다. 그래야 플레이어가 게임에 원활하게 참여할 수 있습니다.

하지만 플레이어가 게임에 유입되면 디바이스 오류나 기타 문제가 생길 경우 계정을 복구할 수 있는 복구 가능 로그인 방법을 추가하라고 알려야 합니다.

이 섹션에서는 익명 계정에 복구 가능 로그인 메커니즘을 추가하는 내용을 다룹니다.

참고 항목

익명 로그인은 여전히 적합하며 플레이어의 원활한 기본 로그인 방법으로 계속 사용할 수 있습니다. 많은 플레이어는 계정 복구를 시도하거나 플랫폼별 기능을 사용하거나 두 번째 익명 디바이스를 연결할 경우에‘만’ 이러한 옵션을 다시 사용합니다.

PayFab 익명 로그인 및 복구 가능 로그인 메커니즘

이 자습서에서 초점을 두는 것은 이미지 맨 아래에 있는 AddUsernamePassword, LinkWithFacebook, LinkWithGoogle 셀입니다. 이것들은 복구 가능 로그인 메커니즘에 사용할 수 있는 더 많은 옵션 집합 중 일부입니다.

  • AddUsernamePassword를 사용하면 LoginWithPlayFabLoginWithEmailAddress 중 하나 또는 둘 다를 사용하도록 설정할 수 있습니다. 이러한 옵션은 사용자 이름/메일/비밀번호 자격 증명을 PlayFab에 직접 저장합니다. 플레이어가 계정을 복구하도록 하기 위해 게임, 웹 사이트 또는 고객 서비스에서 다음을 트리거할 수 있습니다.
    • 메일 주소에 대한 SendAccountRecoveryEmail. 플레이어가 가짜 메일 주소를 입력하는 경우에도 ‘여전히’ PlayFab 게임 관리자를 사용해 플레이어의 메일 주소를 업데이트할 수 있지만, 고객 서비스 담당자가 일반적인 소셜 엔지니어링 속임수를 감시하도록 훈련하여 실제 계정 소유자의 메일 주소만 업데이트하도록 해야 합니다.

타사 복구 가능 로그인 메커니즘은 각기 적절한 SDK 또는 타사 API 호출을 통해 로그인하라는 메시지를 사용자에게 표시합니다. 해당 계정을 PlayFab에 연결하는 작업은 일반적으로 다음과 같은 패턴을 따릅니다.

  1. 먼저 사용자에게 해당 서비스에 로그인하라는 메시지를 표시합니다(자세한 내용은 로그인 기본 사항 및 모범 사례 참조).
  2. 로그인하면 서비스에서는 PlayFab에 전달할 수 있는 일종의 토큰을 제공합니다.
  3. 따라서 PlayFab에서는 해당 서비스에서 사용자의 자격 증명을 몰라도 해당 계정에 안전하게 연결할 수 있습니다.

참고 항목

일부 서비스에서는 게임에서 해당 서비스에 대한 인증 호출을 수행하기 위해 애플리케이션 ID 같은 추가 정보가 PlayFab에 있어야 합니다. 타이틀 설정 중 해당 서비스의 추가 기능 마켓플레이스 페이지를 꼭 확인하세요.

모범 사례

익명 로그인을 이용해 새 플레이어를 원활하게 만듭니다. 자습서 단계 이후 플레이어가 선호하는 복구 가능한 자격 증명을 계정에 연결하도록 부드럽게 권합니다.

타사 인증 시스템을 사용하는 경우 (API 호출 또는 SDK 기능을 통해) 해당 서비스에서 적절한 토큰을 검색한 다음 적절한 PlayFab API를 호출하여 해당 서비스의 플레이어 계정을 LinkFacebookAccount, LinkGameCenterAccount, LinkGoogleAccount, LinkKongregate, LinkSteamAccount, LinkTwitch, LinkWindowsHello, 등 PlayFab 계정에 연결합니다.

모범 사례

  • 사용자의 개인 정보를 보호하기 위하여 사용자 자격 증명을 저장하거나 보관하지 ‘마세요’(COPPA 준수를 위해 필요한 여러 단계 중 하나이기도 함. COPPA가 타이틀의 요구 조건인 경우 반드시 법률 고문을 통해 준수 확인).

  • PlayFab 자격 증명을 사용하거나 직접 타사 API를 호출하는 경우 최대한 빨리 메모리에서 로그인 정보를 지워야 합니다. 일반적으로 타사 SDK는 이 작업을 대신 처리해 줍니다.

  • 식별 가능한 정보 또는 보안 정보를 필요 기간 이상 메모리에 저장하지 말고 파일 또는 원격 위치에 저장하지 마세요. PlayFab API는 최소한의 필수 정보만 활용하도록 설계되었습니다.

기존 복구 가능 계정에 새 디바이스 추가

PlayFab을 이용하면 여러 로그인 및 디바이스에서 동일한 계정에 액세스할 수 있습니다. 올바로 설정하면 어느 디바이스에서나 게임을 즐길 수 있고, 디바이스를 내려놓고 새 디바이스(유형, 브랜드, 플랫폼, OS가 다르더라도)를 집어 들어 데이터가 모두 온전히 유지된 상태로 같은 게임을 계속 플레이할 수 있습니다.

요구 사항

플레이어에게 디바이스가 두 개 있어야 합니다.

  • 디바이스 1 - 올바른 설정을 완료한 복구 가능 자격 증명과 계정으로 설정합니다. 또한 두 번째 디바이스가 계정에 바인딩되지 ‘않은’ 경우에도 적합합니다. 이렇게 하면 두 번째 디바이스의 ID만 로그인 메커니즘으로 사용하는 모든 계정이 분리되어 복구할 수 없게 됩니다. 그러나 PlayFab에는 이러한 경우를 안전하게 감지하고 경고하는 옵션이 있습니다.
  • 이 시나리오의 모든 활동은 디바이스 2에서 이루어집니다. 시작하려면 두 번째 디바이스의 사용자 로그인 흐름을 ‘취소’해야 합니다. 사용자에게 복구 가능 메커니즘을 통한 로그인 옵션을 제공하고 디바이스 ID를 통해 자동으로 로그인되지 ‘않도록’ 해야 합니다.

이 단계를 수행하지 않으면 의도하지 않은 계정 손실 경고를 받게 되므로 플레이어가 불편한 경험을 하게 됩니다.

다양한 조건의 흐름은 다음과 같습니다. 어떤 경우에도 복구 가능 계정이 연결된 플레이어 계정은 ‘하나’뿐입니다.

디바이스 1 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있습니다. 디바이스 2 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있지 ‘않습니다’.

  • 디바이스 2에서 플레이어 계정에 로그인한 후(복구 가능 계정 자격 증명 사용) GetPlayerCombinedInfo를 호출합니다.

디바이스 2는 아직 이 플레이어 계정에 연결되지 않았으므로 해당 디바이스 ID(AccountInfo.IosDeviceInfo, AccountInfo.AndroidDeviceInfo 등)는 디바이스 2 ID와 일치하지 않습니다.

디바이스 1 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있습니다. 디바이스 2 상태: 복구 가능 자격 증명으로 로그인했으나 디바이스 ID가 플레이어 계정에 바인딩되지 ‘않았습니다’.

디바이스 2가 이 계정에 바인딩되어 있지 않음을 확인했으므로 바인딩해 볼 수 있습니다.

  • 적절한 LinkAndroidDeviceID, LinkIOSDeviceID, 기타 장치별 API를 호출합니다.
  • 성공하면 완료된 것이므로 정상적으로 게임 플레이를 계속할 수 있습니다.
  • 그러나 다른 API 호출과 마찬가지로 ‘오류를 캡처할 수 있도록 준비하세요’. 특히 디바이스가 이미 계정에 연결되어 있다는 오류가 반환되는지 찾아보세요.
  • 이 상태에서 플레이어에게 ‘이 디바이스를 이 계정에 바인딩하시겠습니까’라고 묻는 메시지를 표시합니다.
  • 계속할 경우 다른 계정이 ‘손실’될 수 있다는 정보를 제공해야 합니다.
  • 플레이어가 이 경고를 수락하는 경우 ForceLink 속성이 True로 설정된 링크 요청을 다시 보냅니다.
  • 그러면 디바이스 2 ID와 이전 계정의 연결이 해제되어 다른 로그인 메커니즘이 해당 계정에 연결되지 않는 경우 계정이 잠재적으로 분리되고 새 계정에 바인딩됩니다.

모범 사례

CloudScript 또는 PlayStream 이벤트를 사용하여 중단된 계정에 대한 정보를 기록하면 플레이어가 실수하더라도 고객 서비스 담당자가 계정을 복구할 수 있습니다.

참고 항목

간단히 클라우드 기반 로그 파일에 PlayFabId를 기록하는 것만으로도 전용 플레이어의 계정을 보호할 수 있습니다.

디바이스 1 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있습니다. 디바이스 2 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있습니다.

이제 두 디바이스 모두 같은 계정으로 플레이하고 모두 안전하게 원활한 로그인을 사용할 수 있습니다.

원활한 디바이스 ID를 복구 가능한 기존 계정에 바인딩

이 시나리오는 계정을 복구 가능 자격 증명을 사용하여 만든 점을 제외하고 위 상황과 매우 유사합니다.

사후에 익명 로그인을 바인딩하여 기존 게임 로그인 화면을 원활한 로그인으로 전환할 수 있습니다. 여기의 단계는 위 조건과 거의 같으며, 다만 ‘단일’ 디바이스(위 흐름에서 디바이스 2만)를 사용합니다.

디바이스 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있지 ‘않습니다’.

디바이스에서 복구 가능 로그인을 수행한 후 GetPlayerCombinedInfo를 호출합니다. 마찬가지로 result.InfoResultPayload.AccountInfo에 반환된 정보를 통해 디바이스 ID가 바인딩된 디바이스 ID와 일치하는지 확인합니다.

디바이스가 계정에 로그인한 적이 없으므로 해당 디바이스 ID(AccountInfo.IosDeviceInfo, AccountInfo.AndroidDeviceInfo 등)는 디바이스 ID와 일치하지 않습니다.

디바이스 상태: 복구 가능 자격 증명으로 로그인했으나 디바이스 ID가 플레이어 계정에 바인딩되지 않았습니다.

디바이스가 이 계정에 바인딩되지 않았으므로 바인딩을 시도할 수 있습니다. 적절한 LinkAndroidDeviceID, LinkIOSDeviceID, 기타 장치별 API를 호출합니다.

성공하면 완료된 것이므로 정상적으로 게임 플레이를 계속할 수 있습니다.

하지만 역시 오류를 캡처할 수 있도록 준비해야 합니다. 특히 디바이스가 이미 계정에 연결되어 있다는 오류가 반환되는지 찾아보세요. 이 상태에서 플레이어에게 ‘이 디바이스를 이 계정에 바인딩하시겠습니까’라고 묻는 메시지를 표시합니다.

계속할 경우 다른 계정이 ‘손실’될 수 있다는 정보를 제공해야 합니다. 플레이어가 이 경고를 수락하는 경우 ForceLink 속성이 True로 설정된 링크 요청을 다시 보냅니다.

그러면 디바이스 ID와 이전 계정의 연결이 해제되어 다른 로그인 메커니즘이 해당 계정에 연결되지 않는 경우 계정이 잠재적으로 분리되고 새 계정에 바인딩됩니다.

모범 사례:

CloudScript 또는 PlayStream 이벤트를 사용하여 중단된 계정에 대한 정보를 기록하면 플레이어가 실수하더라도 고객 서비스 담당자가 계정을 복구할 수 있습니다. 간단히 클라우드 기반 로그 파일에 PlayFabId를 기록하는 것만으로도 전용 플레이어의 계정을 보호할 수 있습니다.

디바이스 상태: 디바이스 ID가 플레이어 계정에 바인딩되어 있습니다.

이제 디바이스에서 복구 가능 자격 증명 대신 원활한 로그인을 사용할 수 있습니다.

기타 모범 사례

위 단계에서는 로그인하기 전에 사용자에게 메시지를 표시합니다. 간편 로그인에는 플레이어에게 먼저 물어보는 과정을 생략한 로그인이 포함됩니다. 다음 제안 사항을 이용해 적절한 절충 지점을 찾을 수 있습니다.

원활한 로그인 API: 모든 원활한 로그인에는 CreateAccount라는 요청 매개 변수가 있습니다.

예:

  • AndroidRequest.CreateAccount
  • IosRequest.CreateAccount. 다음 지침을 참조하여 이 속성에 대해 true 또는 false를 선택합니다.

시작 시:

  • 로그인 화면에서 CreateAccount=false를 사용하여 게임에서 원활한 로그인을 바로 시도할 수 있습니다. 성공하면 이 플레이어는 이 디바이스에서 게임에 이미 로그인되고 안전하게 게임 화면으로 바로 이동할 수 있습니다. 이 호출의 오류 콜백을 캡처하고 이를 최초 로그인 옵션으로 표시합니다.

  • 최초 로그인 화면: 원활한 로그인 기능을 사용하는 모든 디바이스에서 이 화면에는 Facebook, Twitch, Google, 기타 다른 복구 가능 로그인 옵션을 통해 기존 계정에 로그인할 수 있는 단추와 함께 Play Now(지금 플레이) 단추가 포함됩니다. Play Now(지금 플레이) 단추를 누르며 CreateAccount=true로 원활한 로그인이 활성화됩니다.

  • 로그아웃: 최초 로그인 화면으로 돌아가지만 원활한 로그인을 자동으로 활성화하지는 ‘않는’ 로그아웃 단추를 제공합니다. 따라서 사용자에게 복구 가능 옵션으로 로그인하여 디바이스에 바인딩된 계정을 중단한 다음 디바이스를 해당 계정에 바인딩하는 옵션이 허용됩니다.

위 제안 사항을 활용하면 여러 디바이스를 동일한 계정에 바인딩할 때 사용자에게 계정을 중단하도록 요청하는 불편한 상황을 ‘대부분’ 방지할 수 있습니다.