2009-10-03 77 views
1

我得到一个类似的错误这个职位Ruby on Rails Authlogic password not valid“密码无效”,这似乎从来没有,如果我创建一个新用户要在脚本/控制台解决Authlogic密码是无效的错误

myval = "[email protected]" 
u = User.create(:email => myval, :password => myval, :password_confirmation => myval) 
u.valid? 
>> true 
u.save 
>> true 
u.valid_password?(myval) 
>>false 

如果我在user.rb设置:

acts_as_authentic do |c| 
    c.validate_password_field = false 
end 

我得到了同样的答复。有什么建议么?

+0

永远不要忘记检查你的迁移,并在所有其他的失败时找到一个工作和反向工作的项目。我使用了一种奇怪的authlogic和平稳身份验证迁移组合。 – Schneems 2009-10-04 16:37:27

+0

我的回答能帮助你解决这个问题吗?如果是这样,请接受它(如果您愿意,请提高它)。到目前为止,您已经提出了7个问题,但您尚未接受任何问题的答案。 – 2009-10-05 13:40:45

+0

唉,我没有所需的15分投票给你,如果有其他人来这篇文章,你可以请给彼得他的应有的。除非我错过了一些隐藏的“接受解决方案”按钮。 – Schneems 2009-10-06 02:08:32

回答

4

我只是仔细研究了AuthLogic代码,它看起来像将validate_password_field设置为false只会阻止Rails运行默认验证。它对valid_password?方法没有影响。

还有一些其他因素似乎导致它返回false。这些包括但不仅限于:

  • 检查是否为空白密码
  • 的加密的密码为空
  • 的密码不匹配。 (因为有各种各样的参与这一因素,其中包括CryptoProvider和你是否正在使用RestfulAuthentication风格口令这一个有点复杂。)

要给出更明确的答案,我可能需要有关您的确切设置的更多信息。

+0

猜猜谁回答了问题... – Schneems 2009-10-19 06:34:57

2

我有一个类似的问题这一点,原来旧的宁静验证密码字段在长度超过40个字符时,迁移需要Authlogic 255

+0

谢谢!我有同样的问题,并没有想法......更新我的数据库字段从40到255做了诀窍。 – fredw 2011-04-13 21:47:18

0

尝试备注“before_save:ENCRYPT_PASSWORD”在user.rb如果您有。

# before_save :encrypt_password 
1

就我而言,这只是一个混乱的数据库迁移。 rake db:migrate VERSION=0 && rake db:migrate为我解决了这个问题。