我的RoR应用程序中安装了AuthLogic插件。我没有创建需要高安全性的应用程序。但是如果管理员可以作为特定用户登录而不必知道他们的每个密码,我希望如此。
我无法找到AuthLogic在登录时实际验证输入密码的位置。
任何人对最佳方法有任何建议或建议吗?
答案 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)
,就像测试它一样,这样我应该这样做。