Skip to main content
PlayFab 允许你通过使用自定义加密保护某些客户端 API 调用来加强应用程序安全性。本教程向你展示如何为你的客户端启用加密。 我们将使用的方法允许你保护任何登录 API 调用。由于该过程始终相似,我们只演示如何保护一个特定方法,LoginWithCustomID
登录加密旨在在 title 创建后为所有玩家使用,或者完全不使用。这不是可以在以后启用的功能。你必须从一开始就使用它,或者完全不使用。特别是,已加密的玩家永远无法未加密登录,而未加密的玩家也永远无法成为已加密的玩家。
在本指南中,我们将:
  1. 创建一个 player-shared secret。
  2. 引入一条 API 策略规则以对某个方法启用保护。
  3. 更改客户端以使用 player-shared 密钥检索公共 title 密钥并加密载荷。
PlayFab 提供以下免责声明:“我们所有的 API 调用已经使用现代标准安全加密,标准的 API 调用加密就是大多数客户所需的一切。此功能代表围绕使玩家更难使用未经授权的客户端构建的额外一层安全。它不是万无一失的——它只是提高了黑客的难度门槛。对于大多数开发者来说,轻微的安全提升不值得额外的努力。”

创建 player-shared secret

PlayFab Admin API 公开了一个方法来管理你的 player-shared secret。
创建具有特定名称的新共享密钥将覆盖具有相同名称的现有密钥(如果有)。此外,你可以在不同名称下注册多个共享密钥。
运行以下代码将 player-shared secret 添加到你的 title。
要运行此代码,你需要一个开发者密钥。有关密钥的更多信息,请参阅密钥管理 此应用程序应打印新创建的 player-shared secret。请务必保存它。如果丢失,你将不得不通过再次运行应用程序生成新密钥。 密钥如下所示: QC953WQ3TU6ZJTZMAT1FNJQIKR92FPUQTISW4Q6WD8SY841MQQ

更新策略

我们创建了一个新的共享密钥。现在我们需要告诉 PlayFab 要保护哪些 API 调用。 运行下面所示的代码以保护 LoginWithCustomId API 调用,并取消保护其余的 API 调用。

设置客户端

现在当策略更新后,你不再能够直接调用 LoginWithCustomID API。请考虑下面显示的代码。
通常,这会毫无问题地登录用户。但是,现在这个 API 调用被保护了——代码将产生 Not Authorized 错误(不要与 Not Authenticated 混淆)。 我们需要修改客户端以正确加密调用载荷。这分两步完成:
  1. 使用 player-shared secret 获取 title 公钥。
  2. 使用 title 公钥加密载荷。
下面显示的代码说明了这一点。
一旦你运行代码,你应该能够登录。请记住,一旦创建了 player-shared secret,就必须将其硬编码到你的客户端代码中,因为无法通过任何 API 调用获取或请求它。
最后修改于 2026年8月13日