【发布时间】:2010-04-26 11:39:20
【问题描述】:
你能推荐一些可行的例子吗?我尝试了 Authlogic 和 Devise,但没有成功。
【问题讨论】:
标签: ruby-on-rails facebook openid ruby-on-rails-3 authlogic
你能推荐一些可行的例子吗?我尝试了 Authlogic 和 Devise,但没有成功。
【问题讨论】:
标签: ruby-on-rails facebook openid ruby-on-rails-3 authlogic
更新 - 2011 年 6 月 - 我最近一直在使用 omniauth gem,我认为它比使用此答案中建议的 gem 更好。它与 Devise 配合得很好,可以在一颗宝石中为您提供所需的一切。我创建了一个结合了 Devise 和 Omniauth 的引擎,并添加了一个控制器来处理回调。我为 gem 计划了很多更改,现在我不认为它是一个稳定的插件,但你可以重用 gem 中的一些代码:https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb
我最近在 Rails 3 上进行了这项工作(在使用 OpenID 时遇到了一些问题)。我没有可以在 github 上查看的完整工作示例,但这是我正在使用的……所有这些示例在自述文件中都有示例。
Facebook - fbgraph。与 Facebooker 不同,它使用最新的 Facebook API。如果您想看看内部工作原理,源代码很容易理解。查看自述文件中的身份验证示例。很简单。
Twitter - twitter_oauth 再次查看自述文件身份验证示例。这也很容易设置。
OpenID - rails/open_id_authentication 使用 ruby-openid gem,但这个 repo 本身不是 gem,因此您必须将代码放入您的应用程序或放入您的插件目录。看看他们在自述文件中的示例,并仔细检查源代码以了解发生了什么(它只有 130 行代码)。我对其进行了一些修改以使其与我的身份验证插件一起使用,但我遇到了一些问题,使其同时与简单注册和属性交换一起工作......但你也许可以让它工作如果 rdoc 示例适合您的应用,则开箱即用。
如果您对这些有任何具体问题,请告诉我。我在设置时遇到了一些问题,我可以用这三个问题全部解决。
【讨论】:
我花了大约一周的时间尝试(不成功)让 open_id_authentication 工作。我试图使用 Authlogic 和所有相关的 gem 和插件。我无法让事情按照我想要的方式工作。 (身份验证只能在启用 :action(/:id) 路由的情况下工作,但启用后,我的其他控制器将无法工作,因为插件中的某些内容正在剥离参数哈希 - 非常令人沮丧)。
但是,我终于能够使用 Devise (http://github.com/plataformatec/devise) 和 devise_openid_authenticable (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 获取 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/
【讨论】: