我一直在Rails 2.3中使用Authlogic,但现在我正在使用Rails 3,我想尝试一种新的身份验证解决方案。
Devise和Authlogic有什么区别?它们之间有什么不同之处?
我一直在Rails 2.3中使用Authlogic,但现在我正在使用Rails 3,我想尝试一种新的身份验证解决方案。
Devise和Authlogic有什么区别?它们之间有什么不同之处?
对于 Devise,如果你想将成功登录重定向到 "welcome/index",则需要在 routes.rb 文件中添加以下代码:
namespace :user do
root :to => "welcome#index"
end
个人而言,我喜欢 Devise。我认为它很棒,可以称之为“有主见”,但这些观点很容易被覆盖。
我两个都用过,但不是非常深入。在我的最后一个项目中,我尝试了 Devise,但最终使用了 Rails-Warden。
我觉得 Devise 对我来说过于专断了。如果你只想接受它默认的做法,那么它很好且易于上手。但是我有一些特殊要求,所以发现自己不得不写一些代码绕过 Devise,最终我选择摒弃它,改用 Rails3 的 Authlogic。
和提问者一样,我在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,你会发现自己需要将大块的代码塞进去。它能用,但对我来说,拥有自己的用户控制器来处理用户相关操作更加优雅。
我喜欢Devise。您也可以使用OmniAuth与Devise一起使用。我认为,Devise项目非常活跃,在互联网上获得了很大的支持。