繁体   English   中英

Rails上的OAuth(Twitter,Facebook,LinkedIn等)

[英]OAuth (Twitter, Facebook, LinkedIn, etc) on Rails

我想连接到那些提供OAuth API的应用程序(例如fb,twitter)。

是否有一种相对简单的方法来集成这些API?

我已经成功使用了可以连接到LinkedIn OAuth API的linkedin gem。 但我真的不想安装gem来处理单个应用程序,其中这些应用程序提供了类似的OAuth API。

自2010年10月以来,有人想出了一款名为OmniAuth的宝石。 它将许多不同的身份提供者打包到一个Rack中间件中。 它特别不处理授权或持久性 - 这取决于您。 它可能是目前最好的选择,特别是如果你不打算使用经典的用户名/密码验证(尽管OmniAuth可以处理它)。

OmniAuth将处理来自Facebook,Twitter,Google,LinkedIn,37Signals和Github的身份识别。 有关此帖子的完整列表,请参见下文。

由于这是Rack中间件,因此可以将其与DeviseAuthLogic一起使用。 由于它的模块化,它应该很容易使用纯粹的Restful-API Rails / Sinatra应用程序(没有直接的HTML呈现),这些应用程序可以与流行应用程序交互,而不需要从Devise和AuthLogic中获取额外的代码。

入门的最佳教程是为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用户:

  • bitly
  • dailymile
  • DOIT
  • Dopplr服务
  • Evernote的
  • Facebook的
  • 四方
  • github上
  • goodreads
  • 谷歌
  • Gowalla的
  • 采访Hyves
  • identica
  • Instagram的
  • Instapaper的
  • linked_in
  • 聚会
  • 味噌
  • mixi网
  • Netflix公司
  • smug_mug
  • sound_cloud
  • 37信号
  • trade_me
  • trip_it
  • 推特
  • type_pad
  • VIMEO
  • XAUTH
  • 雅虎
  • you_tube

OpenID登录:

  • Google App(市场集成)
  • 通用OpenID

HTTP基础:

  • 37信号篝火
  • 37 Signals Basecamp
  • 通用HTTP Basic身份验证

企业:

  • 中央认证服务(CAS)
  • LDAP

其他:

  • Windows Live
  • Flickr的

如果您的应用中碰巧拥有现有的用户身份验证基础结构,或者您只是不使用Authlogic (并且不想使用它), OmniAuth可能会帮助您。

https://github.com/intridea/omniauth

以下是一些可以帮助您入门的资源:

http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth

http://railscasts.com/episodes/235-omniauth-part-1

http://railscasts.com/episodes/236-omniauth-part-2

好吧,fb和twitter都是相当自定义的OAuth版本,所以我认为你最终需要每个应用程序都有一个宝石。 但!

Authlogic为open-id,twitter和facebook提供了一些不错的插件。

AuthlogicConnect看起来适用于许多网站(Twitter,Facebook,LinkedIn,MySpace,Google,Yahoo)。 我目前正在使用Rails 3上的FB和Twitter。请务必遵循教程,因为有很多事情需要设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM