Rails 3authentication:Authlogic vs Devise

我一直在Rails 2.3中使用Authlogic,但是现在我正在使用Rails 3,我想我可能会尝试一种新的身份validation解决scheme。

devise与Authlogic相比如何? 他们有什么不同?

我已经用它们,但不是广泛的。 在我上一个项目中,我给了Devise一个镜头。 我最终使用了Rails-Warden。

  • Devise是一个build立在Warden之上的完整authentication框架。 要自定义外观,请使用生成器,然后编辑生成的视图。 它的路由和查看逻辑是硬编码的。 例如,成功的login将总是把你带到/ session / new? 这是一个破坏者或我,我想我的用户最终在“欢迎/索引”。 devise不如文档记载,或作为authlogic直观。
  • 守望者是Devise基于的中间件框架。 它有很多webauthenticationscheme的插件(fb,openid,oauth),并且很容易为自己的authentication后端构build一个插件。 它没有UI,文档也不如authlogic。
  • 我结束了使用rails-warden,因为我需要插入多个自定义身份validationscheme。
  • 另外,请参阅下面的OmniAuth答案,这就是我在2012年使用的。
  • 对于devise,如果你想发送成功的login到“welcome / index”你添加到routes.rb

    namespace :user do root :to => "welcome#index" end 

    如logging的https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

    亲自,我喜欢devise。 它认为这是伟大的,我想你可以称之为“自以为是”,但这些意见可以很容易地被覆盖。

    我发现Devise对我太自以为是。 如果你只是想接受它开箱即用的方式,那就好办了。 我有一些具体的要求,发现自己写东西来绕过devise,所以最终把它撕掉,而不是更新Authlogic到Rails3。

    就像原来的提问者一样,我也经常在Rails 2.3中使用AuthLogic,但是当AuthLogic没有准备好Rails 3.1(当它在RC阶段)时,select使用Devise。 总的来说,我已经让Devise做我想做的事情,但我很不高兴,希望我没有做出改变。

    用户authentication表面上看起来很简单,而且是“组件化”的理想之处,但是在要求login之前,您希望让用户充分参与您的网站,并且Devise使得这一切变得更加困难。

    是的,像将after_sign_in_path_for / after_sign_up_path_for放入Application Controller工作,但是这些function实际上只是用来返回一个path,如果你使用Devise,你会发现自己粘住了大块的代码。 它的工作,但有你自己的用户控制器来处理用户相关的行动,对我来说,更优雅。

    如果您需要对Twitter,Facebook,LinkedIn和Google的多个OAuth身份validation,则可以使用OmniAuth gem和Authlogic。 容易弄清楚,并让您完全控制用户从不同的社交网站进行身份validation时发生的情况,您可以在authorizations_controller.rb中进行身份validation。

    我喜欢Devise。 你也可以用Devise来使用OmniAuth。 我认为Devise项目非常活跃,在互联网上有很大的支持。