Rails 3身份验证:Authlogic与Devis

我一直在Rails 2.3中使用Authlogic,但是现在我在使用Rails 3,我想我可以尝试一种新的身份验证解决方案。

Devise与Authlogic相比如何? 他们有什么区别?

amaseuk asked 2020-08-11T19:41:12Z
6个解决方案
31 votes

我都使用了它们,但没有广泛使用。 在上一个项目中,我给了Devise一个镜头。 我最终使用了Rails-Warden。

  • Devise是建立在Warden之上的完整身份验证框架。 要自定义外观,可以使用生成器,然后编辑结果视图。 它的路由和视图逻辑都是硬编码的。 例如,成功登录将始终使您进入/ session / new? 还是我这是一个大问题,我希望我的用户最终获得“欢迎/索引”。 Devise的记录不如authlogic那样直观或直观。

  • Warden是Devise所基于的中间件框架。 它具有适用于许多Web身份验证方案(fb,openid,oauth)的插件,并且很容易为您自己的身份验证后端构建插件。 它没有UI,并且文档不如authlogic好。

  • 我最终使用了rails-warden,因为我需要插入多个自定义身份验证方案。

  • 另外,请参阅下面的OmniAuth答案,这就是我在2012年使用的答案。

  • Aleksandar Totic answered 2020-08-11T19:41:36Z
    31 votes

    出于设计目的,如果要将成功的登录发送到“ welcome / index”,请添加到routes.rb

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

    如[https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in)所述

    就个人而言,我喜欢设计。 它认为这很棒,我想您可以称其为“观点”,但这些意见很容易被覆盖。

    twmulloy answered 2020-08-11T19:42:05Z
    11 votes

    我发现Devise太自以为是了。 如果您只想接受开箱即用的方式,那就很好,轻松上手。 我有一些特定的要求,发现自己写了一些有关Devise的东西,因此最终将其删除,然后将Authlogic更新为Rails3。

    james2m answered 2020-08-11T19:42:46Z
    10 votes

    像最初的提问者一样,我也一直在Rails 2.3天中使用AuthLogic,但是当AuthLogic尚未为Rails 3.1做好准备时(当时处于RC阶段),我选择了使用Devise。 总的来说,我让Devise做了我想要的,但是我很不高兴,希望我没有做出改变。

    从表面上看,用户身份验证似乎很简单,并且是“组件化”的理想选择,但是很多次您想让用户在要求登录之前完全与您的网站互动,而Devise使得这一点变得更加困难。

    是的,诸如将after_sign_in_path_for / after_sign_up_path_for放入Application Controller的功能可以正常工作,但是这些功能实际上仅用于返回路径,如果您使用Devise,您会发现自己在其中粘贴了大块代码。 它可以工作,但对我而言,拥有自己的用户控制器来处理与用户相关的操作会更优雅。

    fuzzygroup answered 2020-08-11T19:43:17Z
    7 votes

    如果您需要对Twitter,Facebook,LinkedIn和Google进行多种OAuth身份验证,则可以将OmniAuth gem与Authlogic一起使用。 易于弄清楚,使您可以完全控制用户从不同社交网站进行身份验证时发生的情况,您可以在authorizations_controller.rb中进行此操作。

    Adrien Lamothe answered 2020-08-11T19:43:38Z
    3 votes

    我喜欢Devise。 您也可以将OmniAuth与Devise一起使用。 我认为Devise项目非常活跃,并且在互联网上有很大的支持。

    Leandro Andrade answered 2020-08-11T19:43:58Z
    translate from https://stackoverflow.com:/questions/4136121/rails-3-authentication-authlogic-vs-devise