网站、API 和 iPhone App 让用户可以通过 Facebook 登录

Posted

技术标签:

【中文标题】网站、API 和 iPhone App 让用户可以通过 Facebook 登录【英文标题】:Website, API and iPhone App let users login via Facebook 【发布时间】:2012-04-25 10:05:23 【问题描述】:

我正在构建一个网站 (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 应用程序:使用以下参数输入调用我的 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 模块/库我可以用来简化这个?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我知道 Facebook API 和库(我在 PHP 应用程序和 iPhone 应用程序中使用)。这里的事情是我正在构建自己的 API 来公开存储在我的数据库中的我自己的实体/产品。我自己的 API 提供了诸如撰写产品评论或将产品照片上传到我们的服务器等功能。因此我需要对 facebook 用户进行身份验证。 哦,我明白了。这不应该是一个问题。登录 api 将使用户登录。从那里您应该能够将用户名等传递给您的 api。 Facebook api 处理登录。这就是您的问题,对吗? 是的,所以主要的是这是一种安全的方式;通过 HTTPS 将 facebook ACCESS_TOKEN 传递给我自己的 API,以将新用户添加到我的用户数据库表中。当通过我自己的 API 再次通过 ACCESS_TOKEN 发布评论或上传照片时,我自己的 API 可以自行解析它是哪个 facebook_uid。【参考方案2】:

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

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

    通过 Facebook 登录,获取 Facebook UID 和 access_token。 将 UID 和/或 access_token 存储在通过 md5 / sha 加密的数据库中。 每次您的 API 进行调用时,传递 access_token 并与存储的令牌进行检查以验证调用?

【讨论】:

以上是关于网站、API 和 iPhone App 让用户可以通过 Facebook 登录的主要内容,如果未能解决你的问题,请参考以下文章

使用 iPhone 默认电子邮件和姓名帮助用户注册

iPhone原生app+集成支付/购买购买产品

有没有人通过原生 iPhone 应用程序实现了 PayPal API?

可以使用本机 facebook 应用程序登录移动 html5 应用程序吗?在 iPhone 上

App Promo Site - 横向 iPhone 应用网站模板

JPush极光推送 Java调用服务器端API开发