实现玩家登录

本部分介绍了实现玩家登录游戏(同时使用 Xbox 服务和 PlayFab 服务)的两种方法。

重要:在开始之前,确保你已了解了 Xbox/PlayFab 用户帐户和登录的概念

可通过两种方法让玩家登录 PlayFab 帐户。 对于使用任意 PlayFab 服务的所有游戏,建议通过 PlayFab 服务 SDK 进行登录。

但是,如果 PlayFab Party 是游戏使用的唯一 PlayFab 服务,并且游戏仅使用 Xbox 服务作为验证提供程序,请使用 PlayFab Party 的 Xbox Live 帮助程序库。

PlayFab 服务 SDK

PlayFab 服务 SDK 现在是 GDK 的一部分。 它包括 PFAuthenticationLoginWithXUserAsync 函数,用于使用 PlayFab 对 Xbox 玩家进行身份验证。 该函数具有 createAccount 参数,支持自动为玩家预配 PlayFab 帐户。

设置

  • 立即下载并安装 GDK
  • PlayFab.Services.C 游戏扩展库添加到游戏项目。
    • 在 Visual Studio 中打开项目。 转到“项目”>“属性”以打开项目配置窗口。
    • 如果已正确安装 GDK,则会在左侧的“配置属性”下看到“游戏桌面”。
    • 转到“游戏桌面”>“常规”,选择“游戏扩展库”。 在弹出窗口中,选择“PlayFab.Services.C”以将其添加到项目。

对于使用 PlayFab 服务 SDK 将玩家登录到 PlayFab 帐户的所有游戏,建议使用此流程。

  • 使用 XUserAddAsync 将玩家登录到 Xbox 帐户。 有关详细信息,请参阅 XUser
  • 使用从 XUserAddAsync 返回的 XUserHandle 将玩家登录到 PlayFab。 这是在 PlayFab 服务 SDK 中使用 PFAuthenticationLoginWithXUserAsync 实现的。
    • 用户参数中提供 XUserHandle
    • createAccount 标记设置为 TRUE,以确保在需要时预配新的 PlayFab 用户帐户。

要详细了解如何在 GDK 中开始使用 PlayFab,请参阅 PlayFab 服务 SDK 快速入门

PlayFab Party Xbox Live 帮助程序库

注意:如果 PlayFab Party 是游戏使用的唯一 PlayFab 服务,并且游戏仅使用 Xbox 服务作为验证提供程序,请使用此方法。 否则,请遵循 PlayFab SDK 方法下的建议流程。 PlayFab SDK 方法支持更多的身份验证提供程序和更广泛的 PlayFab 服务调用。

PlayFab Party Xbox 服务帮助程序库会检索 Xbox 服务令牌,并使用它将玩家登录到其 PlayFab 帐户。 如果玩家还没有 PlayFab 帐户,它还会自动创建一个。

设置

流向

以下流程介绍如何使用 PlayFab Party 的 Xbox Live 帮助程序库将玩家登录到 Xbox 帐户和 PlayFab 帐户。

  • 使用 XUserAddAsync 将玩家登录到 Xbox 帐户。 有关更多详细信息,请参阅 XUser
  • 然后,在首次启动聊天时使用 XUserGetId 检索 Xbox 用户 ID (XUID)。
  • 使用 PartyXblManager::CreateLocalChatUser 以及上一步中检索到的 XUID 创建 PartyXblLocalChatUser
  • 将此新创建的用户对象传递给 PartyXblManager::LoginToPlayFab
    • 对于 Xbox(XDK 和 GDK)和电脑 (GDK) 游戏,PartyXblManager::LoginToPlayFab 会在后台启动其他必要的请求来提取 Xbox 服务令牌,并使用它们利用其 Xbox 服务凭据登录到玩家的 PlayFab 帐户。 如果玩家的 Xbox 帐户没有关联的 PlayFab 帐户,则 API 将自动创建新的 PlayFab 帐户并与 Xbox 帐户相关联。 以这种方式创建 PlayFab 帐户时,不会与任何电子邮件或用户名关联。
    • 对于非 Microsoft 游戏开发工具包 (GDK) 和非 XDK 游戏,如电脑 (Win32),你将收到 PartyXblTokenAndSignatureRequestedStateChange。 此状态更改表明您需要自己提取 Xbox 服务令牌。 游戏提取令牌后,使用 PartyXblManager::CompleteGetTokenAndSignatureRequest 将其传递给服务,这将完成登录请求。
  • 如果一切正常,则结果为 PartyXblLoginToPlayFabCompletedStateChange,并带有已登录的 PlayFab 凭据(实体 ID 和 PlayFab 令牌)。

注意:对于远程用户,请使用 CreateRemoteChatUser。 远程用户流中不会涉及任何身份验证或令牌。

XUser

XUser 类是系统 API 的一部分,用于处理用户标识并登录 Microsoft 游戏开发工具包 (GDK) 游戏。

若要详细了解 XUser 和登录的最佳做法,请参阅以下资源。

另请参阅