5

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

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

登记:

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

发布产品评论

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

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

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

4

2 回答 2

0

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

加密 access_token 并将其存储在您自己的数据库中并对其进行检查而不是不断地 ping Facebook API 是否同样安全,例如:

  1. 通过 Facebook 登录,获取 Facebook UID 和 access_token。
  2. 将 UID 和/或 access_token 存储在通过 md5 / sha 加密的数据库中。
  3. 每次您的 API 进行调用时,传递 access_token 并与存储的令牌进行检查以验证调用?
于 2012-04-25T19:31:47.477 回答
0

Facebook 在这里有一个现有的 api http://developers.facebook.com/docs/guides/web/

该页面还包含有关如何实现此功能的教程

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

于 2012-04-25T10:17:41.927 回答