Rails JSON API oauth身份验证

Joh*_*ohn 22 mobile ruby-on-rails facebook-oauth rails-api ruby-on-rails-4

我一直在研究为使用rails-api的纯JSON rails 4.1应用程序实现facebook,twitter和email/password身份验证的最佳方法.rails应用程序没有视图,只是在Android和iphone应用程序混合本机应用程序之间提供JSON(它们使用离子框架,这是一个编译成本机应用程序的角度应用程序).

在过去,我已经实现了基本身份验证,其中auth_token通过头文件从客户端应用程序传递到Rails API,使用auth中内置的rails没有任何问题,但是从那时起我需要与Facebook和Twitter集成我正在寻找利用oauth的解决方案.

我已经研究了设计,但它似乎与纯粹的JSON api搭配得很好.同样,omniauth似乎依赖于视图和重定向.此外,opro和门卫似乎很适合作为你自己的oauth提供商,但我不知道他们如何处理像facebook和twitter这样的第三方.

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

Bot*_*oti 3

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

这样我们就可以对整个身份验证过程进行自定义的细粒度控制。

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