0

我有一个“Facebook Web Games”格式的多人文字游戏,想将它移植到“Instant Games”。

可以通过使用获取玩家 ID FBInstant.player.getID();,然后我可以在我的游戏后端服务器上调用一个 URL,如下所示:

FBInstant.startGameAsync()
  .then(function() {

  var playerName = FBInstant.player.getName();
  var playerPic = FBInstant.player.getPhoto();
  var playerId = FBInstant.player.getID();

  $.post("/my/game/backend", { playerID: playerID });
});

但我不明白,如何在我的后端服务器上验证玩家 ID。

如果我不这样做,其他人可能只是curl用来获取 URL“/my/game/backend”并冒充其他玩家。

必须有某种签名或令牌,可以将其传递给游戏后端服务器以使用公共秘密进行验证,但我在Instant Games 文档中找不到它。

4

1 回答 1

1

https://developers.facebook.com/docs/games/instant-games/sdk/fbinstant6.3#signedplayerinfo

SignedPlayerInfo
表示有关玩家的信息以及用于验证它确实来自 Facebook 的签名。

您需要使用getSignedPlayerInfoAsync,然后您可以从中获取签名,并将该值发送到您的服务器以在那里进行验证。

于 2020-08-27T06:46:31.603 回答