23

我一直在研究为使用 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 身份验证?

4

2 回答 2

4

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

于 2015-07-03T08:18:44.847 回答
3

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

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

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

于 2014-04-15T08:54:22.940 回答