2013-06-29 142 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