簡體   English   中英

如何在服務器端驗證 FBInstant.context.getID() 以確保它不是偽造的?

[英]How to verify FBInstant.context.getID() on the server side to ensure it is not faked?

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

可以使用FBInstant.player.getID();獲取玩家 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 文檔中還找不到它。

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

簽名球員信息
代表有關玩家的信息以及簽名以驗證它確實來自 Facebook。

您需要使用getSignedPlayerInfoAsync ,然后您可以從中獲取簽名,並將該值發送到您的服務器以在那里進行驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM