2010-04-26 64 views

回答

16

更新 - 2011年6月 - 我一直在使用omniauth gem最近,我认为这是比使用这一建议的宝石更好的解决方案回答。它可以与Devise很好地合作,并且可以为您提供一切所需的一切。我创建了一个结合Devise和Omniauth的引擎,并添加了一个控制器来处理回调。我计划在创业板不少变化而现在我不认为这是一个稳定的插件,但您可能能够重用一些在创业板上市代码: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采用红宝石的OpenID的宝石,但是这个回购协议本身不是宝石,所以你必须将代码放到你的应用程序或者把你的插件目录。在自述文件中查看他们的示例,并仔细检查源代码以了解正在发生的事情(它只有130行代码)。我修改了一小部分以使其与我的身份验证插件一起工作,但遇到了一些问题,使其可以同时使用简单注册和属性交换...但您可能能够使其工作如果rdoc示例适合您的应用程序,那么它就是开箱即用的。

让我知道你是否对这些有任何具体问题。当我开始设置时,遇到了几个我能够解决的问题。

+0

谢谢你的回答。您是否使用任何通用身份验证插件(如authlogic,devise,restful_authentication),或者您是否构建了自己的“标准身份验证”解决方案? – 2010-08-16 12:41:44

+0

我只是做了我自己的简单认证插件。我并不需要设计和authlogic提供的所有功能。我查看了两者的源代码,并挑选了一些我喜欢用于我自己的角色和身份验证解决方案的东西。虽然我不喜欢重新发明轮子,但当我自己编写代码时(从其他解决方案中汲取灵感的同时),我似乎总能学到更多东西。此外,如果我需要扩展它,我不需要通过其他人的资源在一周内挖掘出来。我正在努力将FB/Twitter/OpenID的东西变成一个轨道引擎。如果我在接下来的几天内做到这一点,我会在这里发布。 – johnmcaliley 2010-08-17 01:10:10

+0

这将是优秀的,谢谢:) – 2010-08-17 07:33:14

4

我花了大约一个星期试图(失败),以获得open_id_authentication工作。我试图使用Authlogic和所有相关的gem和插件。我无法按照我想要的方式让事情工作。 (认证只适用于:action(/:id)路由启用,但是当启用时,我的其他控制器将无法工作,因为插件中的某些内容剥离了参数散列 - 非常令人沮丧)。

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

+0

是的,我无法得到open_id_authentication工作。现在看着设计。 – iJK 2011-04-24 14:05:18

0

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

您可以在Rails3和RPX NOW宝石上找到一个完整的工作示例,其示例代码为github

相关问题