基本上问题就是问。
verify_password_method
状态的AuthLogic文档:
模型中用于验证密码的方法的名称。这应该是一个实例方法。它还应准备好接受原始密码和密码。
我想支持这一点,因为它允许我维护系统当前的伪装行为,而不像我们过去那样存储纯文本密码。但是,在我看来,允许对数据库中的crypted_password
进行简单的字符串比较与存储常规纯文本密码一样糟糕。
我在这里遗漏了什么,或者是否有其他方法可以在AuthLogic中接受加密密码?
作为参考,这就是我写valid_password?
方法的方法:
def valid_password?(password, check_from_database = nil)
if password == self.crypted_password
true
else
super(password, check_from_database)
end
end
答案 0 :(得分:0)
好的,事实证明,有一种更简单的方法可以做到这一点(虽然它看起来非常难以记录,并且没有出现在谷歌搜索如何实现这一目标)。
Authlogic::Session::Base.new(@user, true)
该行允许在不检查凭据的情况下创建会话。显然你应该小心这一点,因为它假定用户已经正确识别了自己 - 对于我的用法,因为有一个检查以确保当前用户是管理员用户,这是安全的。