ruby-on-rails - 自己使用 facebook iOS 客户端授权到服务器

标签 ruby-on-rails ios facebook authentication devise

我在我的 iOS 应用程序中使用 facebook SSO 并且工作正常。 现在我想在我的服务器后端使用这些信息——用户正在用他的 uid 对 facebook 进行验证。但是我怎样才能 - 安全地 - 将此信息传递给服务器?

我的猜测是我需要将从 facebook 获得的 uid 和可能的 authToken 发送到我的服务器?有人可以概述一个通用的方法吗?

尽管这对我的问题来说并不重要,但我的服务器正在运行 rails 和 devise 以进行身份​​验证。我也有单独在那里工作的 facebook 登录,但我想使用服务器上客户端已经完成的身份验证。令人困惑...

最佳答案

我遇到了 this 帮助我理解问题和解决方案的帖子。

如果您发现任何问题,请纠正我。

想法是将授权 token 传递给 Rails 应用程序。授权 token 仅在两个应用使用相同的应用 key 时才有效。

所以流程是这样的:

  1. iOS 认证。获取用户的 Facebook 授权 token 并发送到 Rails 应用。
  2. Rails 应用获取授权 token ,并将其发布到 graph.facebook.com/?auth_token=XXX。响应应该是用户的 json 对象。
  3. 获取用户对象响应以查找 UID 并将其与数据库中的用户匹配。如果 UID 不存在,则创建一个新用户并设置新的 UID。

关于ruby-on-rails - 自己使用 facebook iOS 客户端授权到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840422/

相关文章:

ruby-on-rails - 在服务器启动时启动 ruby​​ rake 任务

ruby-on-rails - Cucumber:创建比较两个类别的步骤定义

ios - 当其他 View 处于动画状态时关闭键盘

facebook - 如何强制 facebookexternalhit 重新访问?

android - React-Native 通过教程 Facebook 获取 JSON 返回错误

ruby-on-rails - 为什么 Rspec/Factory Girl 生成带有 nil id 的对象?

ruby-on-rails - 如何使用 Rails 安装 Webpacker

ios - 在 iOS Safari 上调试添加到主屏幕的 Web 应用程序

Javascript 在 mac(chrome) 上工作,但在 UIWebView 上不工作

iOS 应用程序和发布到 FaceBook