我有一个Rails应用程序,需要使用AuthLogic实现“通用”或“骨架键”密码

时间:2010-08-30 23:49:39

标签: ruby-on-rails authlogic

我的RoR应用程序中安装了AuthLogic插件。我没有创建需要高安全性的应用程序。但是如果管理员可以作为特定用户登录而不必知道他们的每个密码,我希望如此。

我无法找到AuthLogic在登录时实际验证输入密码的位置。

任何人对最佳方法有任何建议或建议吗?

2 个答案:

答案 0 :(得分:1)

验证发生在Authlogic::Session::Password模块中。

如果要覆盖默认行为,请执行以下操作:

class UserSession < Authlogic::Session::Base
  verify_password_method :my_verify_method
  private
    def my_verify_method
      if admin_user? # method that checks to see if the current user is an admin
        true
      else
        valid_password? # use default valid password method
      end
end    

答案 1 :(得分:0)

我建议如下。首先,您必须以管理员身份登录,否则任何人都可以登录,如果他们知道magic word

然后在您的用户列表中,您可以显示重定向到将以当前用户身份登录当前登录管理员的操作的链接。这样,您只能显示具有正确权限的人员链接。

登录代码实际上非常简单:只需执行UserSession.create!(user),就像测试它一样,这样我应该这样做。