使用OpenID,Twitter或Facebook进行Rails 3身份validation

你能建议一些有用的例子吗? 我尝试了Authlogic和Devise的成功。

更新 – 2011年6月 – 我最近一直在使用omn​​iauth gem ,我认为这比使用本答案中建议的gem更好。 它适用于Devise,可以在一个gem中为您提供所需的一切。 我创建了一个结合了Devise和Omniauth的引擎,并添加了一个控制器来处理回调。 我为gem设计了一些变化,现在我不认为它是一个稳定的插件,但你可以重用gem中的一些代码: https : //github.com/charlotte-ruby/ devise_omniauth_engine /斑点/主/应用/控制器/用户/ omn​​iauth_callbacks_controller.rb


我最近使用Rails 3(使用OpenID时遇到一些问题)。 我没有一个完整的工作示例,您可以在github上查看,但这是我正在使用的…所有这些都在自述文件中有示例。

Facebook – fbgraph 。 与Facebooker不同,它使用最新的Facebook API。 如果您想看看内部工作原理,那么源代码就很容易理解。 请查看自述文件中的身份validation示例。 死简单。

Twitter – twitter_oauth再次,查看自述文件身份validation示例。 这也很容易设置。

OpenID – rails / open_id_authentication使用ruby-openid gem,但是这个repo本身不是gem,所以你必须将代码放入你的应用程序或放入你的插件目录。 在自述文件中查看他们的示例,并仔细检查源代码以了解正在发生的事情(它只有130行代码)。 我修改了一些它以使其与我的身份validation插件一起使用,但我遇到了一些问题,使它同时适用于简单注册和属性交换…但你可能能够让它工作如果rdoc示例适合您的应用,则开箱即用。

如果您对此有任何具体问题,请与我们联系。 当我设置它时,我遇到了一些我能够解决的问题。

我花了大约一个星期尝试(失败)让open_id_authentication工作。 我试图使用Authlogic和所有相关的gem和插件。 我不能按照我想要的方式工作。 (身份validation只能在启用:action(/:id)路由时使用,但是当启用时,我的其他控制器将无法工作,因为插件中的某些东西正在剥离params散列 – 非常令人沮丧)。

但是,我终于能够使用Devise( http://github.com/plataformatec/devise )和devise_openid_authenticatable( http://github.com/nbudin/devise_openid_authenticatable )来使用OpenID。 我能够按照两个页面上的自述文件来完成所有工作,就像我想要的那样。 简单。 直行前进。 和Rails 3.0兼容。

Devise建立在Warden上,这是正确的谷歌术语。 搜索’warden openid’,’warden oauth’(twitter)和http://github.com/britt/facebook-warden-strategy for facebook

如果您打算使用Facebooker 2,则必须将Rails框架升级到3.0。 Ayeah Games刚刚完成了游戏FanSwarm的流程(在Facebook上)。 这不是一件容易的事,但博客文章可能会给你一些见解。

http://www.ayeahgames.com/blog/bid/55099/The-Horror-Upgrading-to-Rails-3

AuthLogic具有OpenID扩展。

此外,这可能会有所帮助: http : //www.michaelhamrah.com/blog/2009/05/authlogic-and-openid-on-rails/

我发现这样做的最简单方法是使用RPX NOW服务。

你可以找到一个完整的工作示例,将它与Rails3和github上的RPX NOW gem一起使用。