网站,API和iPhone应用程序允许用户通过Facebook登录

时间:2012-04-25 10:05:24

标签: php ios facebook facebook-graph-api

我正在构建网站(PHP),API(PHP)和本机iPhone应用程序。我希望用户使用他们的Facebook帐户登录,以便他们可以通过网站或iPhone应用程序发布评论/上传照片到我们的服务器/数据库。这也将为我节省创建完整用户注册系统的时间。

我正在试图弄清楚如何为这种解决方案创建统一的架构。我正在考虑以下事情:

注册

  • 创建一个包含我的用户的数据库表(表格将包含以下字段:id,facebook_uid,firstname,lastname)
  • iPhone App登录方案:用户通过Facebook登录;按下允许我的应用程序的权限;使用access_token(存储在手机上)返回App。之后调用我自己的API来注册用户(如果尚未在数据库中注册),并使用以下信息:facebook_uid,firstname和lastname。
  • 网站登录方案:用户通过Facebook登录;重定向到我配置的返回URL并使用这些值注册用户(如果尚未在数据库中)facebook_uid,firstname和lastname

发布产品评论

  • Iphone App:使用以下参数输入调用我的API:review_text,facebook access_token。我的API将使服务器端对Facebook的API调用获取facebook_uid。当我检索到facebook_uid时,我将此facebook用户的评论记录插入数据库。 (而不是发送Facecbook access_token我也可以将facebook_uid值直接发送到我的API。但我认为这可能不太安全,因为任何人都可以在其他用户的行为中插入评论,如果他们知道他们的facebook_uid)

  • 网站:在Facebook Connect PHP库的帮助下,FB登录会话可用,因此我可以通过阅读会话facebook_uid直接插入服务器端。

这是使用Facebook作为您自己平台登录的正确而安全的方式吗?或者我可以使用任何其他PHP模块/库来简化这个?

2 个答案:

答案 0 :(得分:0)

Facebook现有api http://developers.facebook.com/docs/guides/web/

该页面还包含有关如何实现此

的教程

对于iPhone特定的facebook登录,请看这里 https://developers.facebook.com/docs/mobile/ios/build/#implementsso

答案 1 :(得分:0)

我处于类似的情况。保持手机上的access_token似乎是一个好主意,然后通过您的API传递这个来验证您自己的数据库上的用户似乎也是一个好主意。

加密access_token并将其存储在您自己的数据库中并检查是否安全,而不是持续ping Facebook API,即:

  1. 通过Facebook登录,获取Facebook UID和access_token。
  2. 通过md5 / sha加密数据库中的UID和/或access_token。
  3. 每当您的API拨打电话时,都会传递access_token并针对存储的那个进行检查以验证通话?