유니버설 Windows 플랫폼과 PlayFab의 통합

이 자습서에서는 PlayFab과 UWP(유니버설 Windows 플랫폼) 간 통합의 세 가지 핵심 사항을 안내합니다.

참고 항목

유니버설 Windows 플랫폼을 PlayFab과 통합하는 방법을 보여주기 위해 샘플 코드가 있는 [GitHub repository](https://github.com/PlayFab/UWPExample)를 만들었습니다.

유니버설 Windows 플랫폼(UWP)을 PlayFab과 통합하는 것은 매우 간단합니다. 걱정해야 할 사항은 정말 오직 다음의 세 가지뿐입니다.

  1. Windows Hello 계정을 PlayFab 계정에 연결.
  2. Windows Hello를 통해 플레이어 로그인.
  3. Microsoft Store에서 구매한 항목의 유효성 검사.

이러한 세 가지 주제를 순서대로 살펴보겠습니다.

Windows Hello 계정을 PlayFab 계정에 연결.

두 가지 방법으로 Windows Hello 계정을 PlayFab 계정에 연결할 수 있습니다.

  1. Windows Hello 자격 증명을 사용하여 새 PlayFab 계정을 만들 수 있습니다.
  2. 또는 Windows Hello 자격 증명을 기존 PlayFab 계정에 연결할 수 있습니다.

어느 방법을 사용하는지는 Windows Hello가 기본 인증인지 여부에 따라 다릅니다.

Windows 자격 증명을 사용하여 새 계정 만들기

이 프로세스를 시작하기 전에 Windows에서 사용자에게 사용자 이름을 요청해야 합니다.

그런 다음 아래 단계를 수행할 수 있습니다.

  1. KeyCredentialManager.RequestCreateAsync를 호출하여 이 사용자에 대한 새 공개 키를 생성합니다.
  2. CryptographicBuffer.EncodeToBase64String를 호출하여 위에서 IBuffer를 문자열로 변환합니다.
  3. 다음 필수 매개 변수를 사용하여 PlayFabClientAPI.RegisterWithWindowsHello를 호출합니다.
    • Windows 사용자 이름.
    • 위에서 Base 64로 인코딩된 공개 키.
  4. 등록이 성공적이었을 경우 플레이어가 이제 로그인될 것입니다. 다른 모든 PlayFab API로 플레이어를 인증하는 데 사용할 수 있는 세션 토큰을 다시 가져옵니다.
  5. 또한 이제 HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256)을 사용하여 해시 공급자를 만들고 hashProvider.HashData(publicKey)를 호출하여 공개 키를 해시할 수 있습니다.
  6. 해시된 공개 키를 Base 64로 인코드된 문자열 (CryptographicBuffer.EncodeToBase64String(publicKeyHash))로 변환하고 이 문자열 및 사용자 이름을 응용 프로그램 설정에 저장합니다. (ApplicationData.Current.LocalSettings.Values["publicKeyHint"]). 이 공개 키 힌트는 다시 로그인하는 데 사용됩니다.
  7. 보다 간단한 로그인을 위해 사용자 이름도 사용자의 로컬 설정에 저장해야 합니다.

Windows 자격 증명을 기존 PlayFab 계정에 연결.

Windows 자격 증명을 기존 PlayFab 계정에 연결하는 프로세스는 매우 유사합니다. 차이점은 다음과 같습니다.

  1. 먼저 PlayFab 계정에 이미 로그인되어 있어야 합니다. 일반적으로 안전하지 않은 장치 ID를 사용하여 익명으로 수행됩니다.
  2. 그런 다음 이전 섹션의 단계를 수행하지만 RegisterWithWindowsHello 대신 LinkWindowsHello를 사용합니다.
  3. 이제 사용자는 앞으로 Windows 자격 증명으로 로그인하여 PlayFab 계정에 액세스하거나 계정을 복구할 수 있습니다.

Windows Hello를 통해 플레이어 로그인.

Windows Hello 자격 증명을 PlayFab 계정에 연결하면 해당 자격 증명으로 로그인할 수 있습니다. 공개 키 힌트와 Windows 사용자 이름이 필요합니다.

다음 단계를 수행하세요.

  1. PlayFabClientAPI.GetWindowsHelloChallengeAsync를 호출하여 서명 챌린지를 만듭니다.
  2. CryptographicBuffer.DecodeFromBase64String를 호출하여 사용자 서명을 받기 위해 KeyCredentialManager에 대한 IBuffer 만듭니다.
  3. var retrieveResult = awaitKeyCredentialManager.OpenAsync(userId)를 호출하여 키 서명 서비스를 만듭니다.
  4. 이 사용자에 대한 자격 증명 가져오기:var userCredential = retrieveResult.Credential.
  5. await userCredential.RequestSignAsync(challengeBuffer)를 호출하여 Windows에서 사용자가 이 사용자에 대한 서버의 챌린지에 서명하도록 요청합니다.
  6. 마지막으로, PlayFabClientAPI.LoginWithWindowsHello를 호출하여 프로세스를 완료하고 플레이어를 로그인합니다.
  7. 로그인이 성공적이었을 경우 플레이어가 이제 로그인될 것입니다. 다른 모든 PlayFab API로 플레이어를 인증하는 데 사용할 수 있는 세션 토큰을 다시 가져옵니다.

Microsoft Store를 통한 구매

Microsoft Store를 통한 구매는 iOS 또는 Android를 통한 구매 프로세스와 유사합니다. 두 가지 단계가 있습니다.

  1. 처음에 Microsoft Store를 설정합니다.
  2. 그런 다음 구매합니다.

Microsoft Store 설정

Microsoft는 이 프로세스를 설명하는 여러 문서를 게시했습니다. 예를 들면 :

Microsoft Store에서 앱 내 구매 설정

PlayFab 카탈로그에서 일치하는 아이템을 동일한 제품 ID를 사용하여 설정해야 합니다.

구매

Microsoft Store에서 아이템을 설정한 후 앱에서 앱 내 구매를 사용하도록 설정할 수 있습니다.

  1. 응용 프로그램에서 구매하고 반드시 영수증을 요청하세요.
  2. 영수증을 다시 받을 것입니다.
  3. PlayFabClientAPI.ValidateWindowsStoreReceipt 호출하여 영수증의 유효성을 검사합니다. 자동으로 PlayFab에 있는 플레이어의 인벤토리에 방금 구매한 아이템이 반영됩니다.

추가 문의 사항

추가 문의 사항이 있는 경우에는 포럼에 게시하세요.

유니버설 Windows 플랫폼과 게임을 통합하는 것에 대한 여러분의 피드백을 언제나 환영합니다!