我想连接到那些提供OAuth API的应用程序(例如fb,twitter)。
是否有一种相对简单的方法来集成这些API?
我已经成功使用了可以连接到LinkedIn OAuth API的linkedin gem。但我真的不想安装gem来处理单个应用程序,其中这些应用程序提供了类似的OAuth API。
答案 0 :(得分:7)
自2010年10月以来,有人提出了名为OmniAuth的宝石。它将许多不同的身份提供者打包到一个Rack中间件中。它特别不处理授权或持久性 - 这取决于您。它可能是目前最好的选择,特别是如果你不打算使用经典的用户名/密码验证(尽管OmniAuth可以处理它)。
OmniAuth将处理来自Facebook,Twitter,Google,LinkedIn,37Signals和Github的身份识别。有关此帖子的完整列表,请参阅下文。
由于这是一个Rack中间件,因此可以将其与 Devise 和 AuthLogic 一起使用。由于它的模块化,它应该很容易使用纯粹的Restful-API Rails / Sinatra应用程序(没有直接的HTML呈现),这些应用程序可以与流行应用程序交互,而不需要从Devise和AuthLogic中获取额外的代码。< / p>
入门的最佳教程是为Rails Rumble撰写的关于快速启动和运行身份验证的博文:http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth
Ryan Bates也有一些关于OmniAuth的Railscast:
截至发布时,这些是开箱即用的以下提供商(基于https://github.com/intridea/omniauth/tree/dc44c54d80ca0b49d1f63bbbf21165a7515fd41d)
<强>的OAuth / OAuth2用户:强>
<强>的OpenID:强>
HTTP Basic:
<强>企业:强>
其他强>
答案 1 :(得分:5)
如果您的应用中碰巧拥有现有的用户身份验证基础结构,或者您刚刚未使用Authlogic(并且不想使用它), OmniAuth 可能会对您有所帮助。
https://github.com/intridea/omniauth
以下是一些可以帮助您入门的资源:
http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth
答案 2 :(得分:4)
嗯,fb和twitter都是相当自定义的OAuth版本,所以我认为你最终每个应用都需要一个宝石。但是!
Authlogic为open-id,twitter和facebook提供了一些不错的插件。
答案 3 :(得分:3)
AuthlogicConnect看起来适用于许多网站(Twitter,Facebook,LinkedIn,MySpace,Google,Yahoo)。我目前正在使用Rails 3上的FB和Twitter。请务必遵循教程,因为有很多事情要设置。