【问题标题】:Rails JSON API oauth authenticationRails JSON API oauth 身份验证
【发布时间】:2014-05-28 02:40:11
【问题描述】:

我一直在研究为使用 rails-api 的纯 JSON rails 4.1 应用程序实现 facebook、twitter 和电子邮件/密码身份验证的最佳方法。 rails 应用程序没有视图,仅在 android 和 iphone 应用程序混合原生应用程序之间提供 JSON(它们使用 ionic 框架,这是一个编译成原生应用程序的角度应用程序)。

过去我已经实现了基本身份验证,其中 auth_token 从客户端应用程序的标头中传递到 Rails API,使用内置 auth 的 rails 没有问题,但因为这次我需要与 Facebook 和 Twitter 集成我'我正在寻找利用 oauth 的解决方案。

我已经研究过设计,但它似乎不能很好地与纯 JSON api 配合使用。同样,omniauth 似乎依赖于视图和重定向。此外,opro 和 doorkeeper 似乎很适合成为您自己的 oauth 提供者,但我看不出他们如何处理 facebook 和 twitter 等第三方。

人们如何在 Rails 中为纯 JSON API 应用程序实现多提供者 oauth 身份验证?

【问题讨论】:

  • 我希望我能给你超过 1 个支持 :)。这正是我也有的问题。每个人都在谈论令牌认证,但没有人谈论如何进行 3rd 方认证。我当前的解决方案是客户端重定向到我的 API,我使用 OmniAuth 进行身份验证,将身份验证令牌存储在 cookie 中,然后重定向回客户端。但这很有效,因为我唯一的客户端是浏览器,我意识到我希望它更通用。对不起,没有真正帮助:)
  • @John 嘿,你最后是怎么实现认证的?
  • @PaulFitzgerald 开源了它github.com/johnkelly/heavenly。基本上是 facebook auth 认证后成为 token auth。

标签: ruby-on-rails mobile ruby-on-rails-4 facebook-oauth rails-api


【解决方案1】:

查看this 博客。在这里,作者解释了在带有rails后端的android中实现google oauth2,并带有一些漂亮的图表。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我使用咆哮制作了一个非常相似的 JSON Api。身份验证使用自定义服务类来针对 google、facebook、twitter 进行身份验证。 facebook 的服务类需要一个 facebook tokan 并使用 Koala gem 从 facebook 获取信息并填充社交身份。如有必要,它会创建一个新用户或将社交身份与具有相同 UID 或电子邮件的现有用户相关联。

    通过这种方式,我们可以对整个身份验证过程进行自定义细粒度控制。

    我们还使用swagger 来记录 API 并提供易于测试的前端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-21
      • 2016-04-12
      • 2015-02-02
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2016-02-07
      • 2021-09-29
      相关资源
      最近更新 更多