结合FaceBook客户端和服务器端身份验证

时间:2013-01-17 20:13:39

标签: facebook facebook-ios-sdk facebook-authentication facebook-java-api

我有以下用例

  1. 我在iOS上的应用程序使用FaceBook iOS SDK通过FB
  2. 进行身份验证
  3. 然后,应用程序通过https对我的服务器进行REST调用,将FB帐户注册到他们的服务帐户(我提供的服务)
  4. 在第2步中,客户端正在发送FaceBook UID。

    我的问题是服务器没有FB集成,因此必须在发送正确的FaceBook UID的客户端上回复。

    所以问题很明显,黑客可以将其他FaceBook帐户附加到他们的服务帐户。

    我希望服务器(Java)能够验证发送请求的用户是否拥有相关的Facebook UID。

    我一直在网上搜索,但找不到任何我觉得有用的东西。

    我遇到了一篇关于使用FB signedRequest字段的模糊帖子,可以将其传递给服务器以验证用户。

    任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

这是一个想法:

在iOS应用中对用户进行身份验证后,请获取access_token,并将此REST调用仅传递给您的服务器。

在服务器端,使用您传输的https://graph.facebook.com/me?access_token=...access_token发出请求。如果访问令牌有效,您将获得所有用户的数据,证明您拥有经过身份验证的有效用户。

如果您想要更加确定,还可以请求http://graph.facebook.com/app?access_token=...确保您的应用创建了访问令牌。