2013-06-29 189 views
2

我正在開發多人Facebook遊戲的畫布,與Flash客戶端和C#/ .NET在服務器端。通訊使用套接字。 Flash在asp.net頁面中加載。Facebook多人遊戲與Flash客戶端和.NET服務器端

我想要一些有經驗的開發人員關於Facebook集成的最佳實踐,主要是身份驗證模塊。

我想出了這些情景:

  1. 的Flash SDK爲Facebook(在外部調用JavaScript方法)在啓動和其他呼叫來驗證用戶。
  2. 加載應用程序的ASP.NET服務器端身份驗證(可能與JavaScript SDK)。然後使用不帶JavaScript SDK的「遊戲服務器」(Flash是 與套接字進行通信),直接調用FB api的 。

哪種方法更好,爲什麼?我認爲也會有安全問題:|

編輯 我加了一些細節:

很簡單多人遊戲的4名選手。首先,我將在C#的aspx.cs代碼中檢查facebook canvas所發佈的signed_request,獲取facebook提供的UserId並將其傳遞給Flash客戶端,在此Flash客戶端使用套接字連接到服務器併發送UserId後,比我需要「reAuthenticate」這個UserId並檢查它是否是我第一次使用signed_request的id(這一步是我被卡住並需要幫助的地方)。之後,我認爲這將是好的

回答

4

這取決於應用程序/遊戲的類型以及用戶認證保護的內容。

如果它正在保護服務器上的任何內容,那麼您不能只依靠Flash客戶端來驗證用戶身份。請記住,攻擊者可以跳過你的Flash客戶端,或修改它,以實現他們的目標。

一般而言,您希望在遊戲有意義的時間進行Facebook身份驗證,並且在將其發送到服務器時,它會驗證並頒發自己的身份驗證令牌,您無需觸碰任何外部來源即可進行檢查。

+0

這是4人玩家的簡單多人遊戲。首先,我將通過C#的aspx.cs代碼中的facebook canvas檢查signed_request posteb,獲取facebook提供的UserId並將其傳遞給Flash客戶端,此Flash客戶端通過套接字連接到服務器併發送UserId後,比我需要「reAuthenticate」這個UserId並檢查它是否是我第一次使用signed_request的id(這一步是我被卡住並需要幫助的地方)。之後,我認爲這將是所有正確 – Lev

+0

檢查並檢索用戶ID後,您可以爲用戶發出問題的asp.net身份驗證令牌(需要httponly禁用,雖然,如http://mvolo.com/iis-70 -forms驗證和嵌入式媒體播放器/)。然後reAuthenticate成爲用支持它的asp.net檢查令牌。 – eglasius

+0

正如我所提到的,連接是.Net服務器和帶有套接字的Flash客戶端之間的連接。我如何在這種情況下使用asp.net令牌? – Lev