[英]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.