23

你能推荐一些可行的例子吗?我尝试了 Authlogic 和 Devise,但没有成功。

4

6 回答 6

16

更新 - 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 上查看的完整工作示例,但这是我正在使用的……所有这些示例在自述文件中都有示例。

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

Twitter - twitter_oauth再次查看自述文件身份验证示例。这也很容易设置。

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

如果您对这些有任何具体问题,请告诉我。当我设置它时,我遇到了一些我能够用所有 3 个问题解决的问题。

于 2010-08-16T00:43:05.663 回答
4

我花了大约一周的时间尝试(不成功)让 open_id_authentication 工作。我试图使用 Authlogic 和所有相关的 gems 和插件。我无法让事情按我想要的方式工作。(身份验证只能在启用 :action(/:id) 路由的情况下工作,但是当启用该路由时,我的其他控制器将无法工作,因为插件中的某些东西正在剥离参数哈希 - 非常令人沮丧)。

但是,我终于能够使用 Devise ( http://github.com/plataformatec/devise ) 和 devise_openid_authenticable ( http://github.com/nbudin/devise_openid_authenticable ) 让 OpenID 正常工作。我能够按照两个页面上的自述文件,让一切都完全按照我想要的方式工作。简单的。直线前进。与 Rails 3.0 兼容。

于 2010-08-20T06:12:50.627 回答
2

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

于 2010-08-13T09:43:06.550 回答
1

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

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

于 2011-01-24T16:42:11.240 回答
0

AuthLogic 有一个 OpenID 扩展。

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

于 2010-08-16T00:58:34.397 回答
0

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

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

于 2010-12-17T15:52:35.030 回答