帐户链接快速入门

本帐户链接快速入门说明如何将帐户绑定到多个设备和登录机制。

可以通过许多设备和登录凭据访问单个 PlayFab 帐户。 如我们在教程登录基础知识和最佳实践中所讨论的那样,有两种形式的用户身份验证:

  1. 匿名
  2. 可恢复

向现有匿名帐户添加可恢复登录

首次登录采用匿名方式是十分常见的。 这可使玩家顺利地进入到游戏中。

但是一旦玩家投入游戏,便应提示他们添加可恢复登录方法,这会使其帐户在发生设备故障或其他问题时可恢复

本节介绍如何向匿名帐户添加可恢复登录机制。

注意

匿名登录仍然相关,并且可以继续作为玩家的主要顺畅登录方法。 许多玩家仅当 尝试恢复其帐户、使用特定于平台的功能或链接第二个匿名设备时,才会再次使用这些选项。

PayFab 匿名登录和可恢复登录机制

本教程侧重介绍上图底部的单元格:AddUsernamePasswordLinkWithFacebookLinkWithGoogle。 这些单元格指出了可用于可恢复登录机制的几个较大选项集。

  • AddUsernamePassword 用于启用 LoginWithPlayFab 和/或 LoginWithEmailAddress。 这些选项直接通过 PlayFab 存储用户名/电子邮件/密码凭据。 若要使玩家可以恢复其帐户,游戏、网站或客户服务可以触发:
    • 针对该电子邮件地址的 SendAccountRecoveryEmail。 如果玩家输入虚假电子邮件地址,您 可以使用 PlayFab Game Manager 更新玩家的电子邮件地址,不过请务必确保客户服务代表接受培训以密切注意常见的社会工程骗局,以便只更新帐户实际所有者的电子邮件地址。

每个第三方可恢复登录机制都涉及提示用户通过相应的 SDK 或第三方 API 调用登录。 将该帐户链接到 PlayFab 通常遵循相同模式:

  1. 首先,提示用户登录该服务(登录基础知识和最佳实践中提供了更多详细信息)。
  2. 登录后,这些服务会提供某种可以传递给 PlayFab 的令牌。
  3. 这使 PlayFab 可以安全地链接到该帐户,而无需了解用户在该服务中的凭据。

注意

某些服务需要 PlayFab 具有一些附加信息(如应用程序 ID),以便为游戏对该服务进行身份验证调用。 请务必在设置游戏的过程中,检查 Add-on Marketplace 页面上是否有相关服务。

最佳实践

使用匿名登录无任何麻烦地创建新玩家。 一个教程阶段过后,鼓励玩家将您首选的可恢复凭据链接到其帐户。

如果使用第三方身份验证系统,请从该服务检索相应的令牌(通过 API 调用或 SDK 函数),然后调用相应的 PlayFab API,将玩家的帐户从该服务链接到其 PlayFab 帐户: Link FacebookAccountLinkGameCenterAccountLinkGoogleAccountLinkKongregateLinkSteamAccountLinkTwitchLinkWindowsHello

最佳实践

  • 为保证用户隐私,请勿 保存或存储任何用户凭据(这也是实现 COPPA 合规性所需的许多措施中的一个 - 如果这是游戏的一个要求,请务必咨询法律顾问以确认是否合规)。

  • 如果使用 PlayFab 凭据,或者直接调用第三方 API,则应尽快从内存中清除登录信息。 一般而言,第三方 SDK 会为您处理此情况。

  • 请勿在不需要后将任何身份信息或安全信息保留在内存中,并且请勿将它保存到文件或远程位置。 PlayFab API 设计为只利用最少量的所需信息。

向现有可恢复帐户添加新设备

PlayFab 允许多个登录和设备访问相同帐户。 当设置正确时,玩家可以在任何设备上玩游戏、关闭该设备、选取新设备(即使是不同类型、品牌、平台或操作系统)以及恢复玩相同游戏,同时使所有数据保持不变。

要求

玩家必须拥有两个设备:

  • 设备 1 - 使用已正确设置的帐户和可恢复凭据进行设置。 如果第二个设备 绑定到帐户,这也十分理想。 此过程会使只将第二个设备的 ID 作为登录机制的任何帐户孤立,从而使它不可恢复。 但是,PlayFab 具有安全地检测和警告这种情况的选项。
  • 此方案中的所有活动都在设备 2 上进行 - 若要开始,必须反转 第二个设备的用户登录流程。 必须向用户提供通过可恢复机制登录的选项,而不是 使用设备 ID 自动登录。

未能执行此步骤会导致尴尬的玩家体验,在这种情况下会警告他们将失去他们从未打算创建的帐户。

针对各种条件的流程如下所示 - 请注意,在所有情况下都只有一个 玩家帐户,它链接了可恢复帐户。

设备 1 状态设备 ID 绑定到玩家帐户。 设备 2 状态设备 ID 绑定到玩家帐户。

设备 2 尚未链接到此玩家帐户,因此相关设备 ID(AccountInfo.IosDeviceInfoAccountInfo.AndroidDeviceInfo 等)不会与设备 2 ID 匹配。

设备 1 状态设备 ID 绑定到玩家帐户。 设备 2 状态:使用可恢复凭据登录,但是设备 ID 绑定到玩家帐户。

现在已确认设备 2 未绑定到此帐户,可以尝试绑定它。

  • 调用相应的 LinkAndroidDeviceIDLinkIOSDeviceID 或其他特定于设备的 API 调用。
  • 如果成功,则已完成,可恢复正常游戏。
  • 但是与任何 API 调用一样,请准备好捕获错误。 具体来说,查找设备已链接到帐户的错误返回。
  • 在此条件下,通过 Do you want to bind this device to this account 消息提示玩家。
  • 请务必提供信息,告知如果继续进行则可能会失去 另一个帐户。
  • 如果玩家接受此警告,则重新发送 ForceLink 属性设置为 True 的链接请求。
  • 这会取消设备 2 ID 与旧帐户的链接(如果没有其他登录机制链接到该帐户,则可能会使它孤立),并将它绑定到新帐户。

最佳实践

使用 CloudScript 或 PlayStream 事件将有关已放弃帐户的信息记录在某个位置,以便在玩家犯了错误时,客户服务代表能够从该位置恢复帐户。

注意

即使是将 PlayFabId 写入基于云的日志文件这样简单的事情也可以为专用玩家保存帐户。

设备 1 状态设备 ID 绑定到玩家帐户。 设备 2 状态设备 ID 绑定到玩家帐户。

此时,两个设备现在都使用相同帐户玩游戏,并且两个设备都可以安全地使用顺畅登录。

将顺畅设备 ID 绑定到现有可恢复帐户

此方案非常类似于上面的情况,除了是使用可恢复凭据创建帐户。

可以通过在事后绑定匿名登录,将现有游戏登录屏幕转换为顺畅登录。 此处的步骤几乎与上面的条件相同,只不过是使用单个 设备(仅仅是上面流程中的设备 2)。

设备状态设备 ID 绑定到玩家帐户。

使用设备执行可恢复登录之后,调用 GetPlayerCombinedInfo。 同样,通过 result.InfoResultPayload.AccountInfo 中返回的信息来确定设备 ID 是否与绑定的设备 ID 匹配。

设备从未登录帐户,因此相关设备 ID(AccountInfo.IosDeviceInfoAccountInfo.AndroidDeviceInfo 等)不会与设备 ID 匹配。

设备状态:使用可恢复凭据登录,但是设备 ID 未绑定到玩家帐户。

设备未绑定到此帐户,因此可以尝试绑定它。 调用相应的 LinkAndroidDeviceIDLinkIOSDeviceID 或其他特定于设备的 API 调用。

如果成功,则已完成,可恢复正常游戏。

不过同样请准备好捕获错误。 具体来说,查找设备已链接到帐户的错误返回。 在此条件下,通过 Do you want to bind this device to this account 消息提示玩家。

请务必提供信息,告知如果继续进行则可能会失去 另一个帐户。 如果玩家接受此警告,则重新发送 ForceLink 属性设置为 True 的链接请求。

这会取消设备 ID 与旧帐户的链接(如果没有其他登录机制链接到该帐户,则可能会使它孤立),并将它绑定到新帐户。

最佳实践

使用 CloudScript 或 PlayStream 事件将有关已放弃帐户的信息记录在某个位置,以便在玩家犯了错误时,客户服务代表能够从该位置恢复帐户。 即使是将 PlayFabId 写入基于云的日志文件这样简单的事情也可以为专用玩家保存帐户。

设备状态:设备 ID 绑定到玩家帐户。

此时,可以将顺畅登录与设备一起使用,而不是使用可恢复凭据。

其他最佳实践

以上步骤涉及在登录之前提示用户。 顺畅登录涉及在 首先询问玩家的情况下登录。 可以通过以下建议找到理想的中间方案:

顺畅登录 API:顺畅登录全部具有一个名为 CreateAccount 的请求参数。

示例:

启动时

  • 在登录场景中,如果 CreateAccount=false,则游戏可以立即尝试顺畅登录。 如果此操作成功,则此玩家已使用此设备登录游戏,他们可以放心地直接跳入游戏场景。 捕获此调用的错误回调,并让它显示首次登录选项。

  • 首次登录场景:对于具有顺畅登录功能的任何设备,此场景都应包含立即游戏按钮,以及让玩家可以通过 Facebook、Twitch、Google 或其他可恢复登录选项登录现有帐户的按钮。 在 CreateAccount=true 时,立即游戏按钮应激活顺畅登录。

  • 注销:提供注销按钮,它可返回到首次登录场景,但是不会 自动激活顺畅登录。 这使用户可以选择通过使用可恢复选项登录来放弃设备绑定帐户,然后将设备绑定到该帐户。

借助这些建议,可以避免大多数 在将多个设备绑定到相同帐户时请用户放弃帐户的尴尬方案。