iOS客户端,Facebook API和服务器之间的安全通信

时间:2012-07-16 15:42:26

标签: iphone ios facebook security facebook-graph-api

我想通过Facebook登录实现iOS应用。我希望我的应用程序的用户能够与他们的社交图表进行交互(即发布到他们的流)。为此,我将使用Facebook iOS SDK 当用户已经通过Facebook进行身份验证时,他们也应该能够在我的应用程序的服务器端使用某些服务。如何根据服务器上的服务验证用户?

在我的iOS应用程序中,我可以使用iOS Facebook SDK查询访问令牌(对于我的Facebook应用程序)。我应该将该访问令牌与facebook用户ID一起发送到我的服务器吗?服务器可以验证访问令牌是否有效吗?或者只应该我的iOS应用程序与Facebook API进行通信?服务器可以发布到我的Facebook墙上,还是应该通过iOS应用程序完成?

1 个答案:

答案 0 :(得分:5)

<强>更新

Facebook现在提供安全文档/清单: https://developers.facebook.com/docs/facebook-login/security/


您至少有两个选择:

  1. 将访问令牌发送到您的服务器并处理对Facebook的所有请求 使用该令牌(如果令牌无效,则会出现错误而且只是 把它传递给客户)。 =&GT;安全但有点复杂。

  2. 分开

    之间的沟通
    • 您的客户(iOS App)和Facebook API以及
    • 您的客户和您的服务器。

    您的应用将通过Facebook iOS SDK处理对Facebook API的所有请求,然后将结果数据(如所有类型的Facebook ID)传送到您的服务器。没有某种加密,这种方法是完全不安全的;您可以向服务器发送一些加密哈希函数,并使用存储在服务器和iOS应用程序上的密钥对其进行验证。 =&GT;这种方法(有点)更容易实现,但由于密钥可以通过逆向工程被盗,因此安全性较低。此外,在将应用程序提交到应用程序商店时,您必须检查“我正在使用加密”复选标记。

  3. 这实际上取决于您愿意承担多少风险,您提出何种要求,您拥有何种服务等等。

      

    服务器可以验证访问令牌是否有效吗?

    是的,请看这里:Facebook access token server-side validation for iPhone app