首页 文章

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

提问于
浏览
16

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

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

1 回答

  • 5

    UPDATE:

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


    您至少有两个选择:

    • 将访问令牌发送到您的服务器并使用该令牌处理对Facebook的所有请求(如果令牌无效,您将收到错误并将其传递给客户端) . =>安全但有点复杂 .

    • 分开之间的沟通

    • 您的客户端(iOS App)和Facebook API和

    • 您的客户和您的服务器 .

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

    这实际上取决于您愿意承担多少风险,您提出了什么样的要求,您拥有什么样的服务等等 .

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

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

相关问题