我在我的 ubuntu 14.04 上遇到了这个问题,我有 rails 4.1.8 和 ruby 2.1.2。 上次我在 mac OSX 10.10 上尝试使用相同的 rails 和 ruby 版本时,我能够成功创建用户。但是当我在我的 ubuntu 14.04 上尝试它时,我收到以下密码字段错误:
密码太短(最少 5 个字符) 密码确认与密码不符
密码的长度是多少并不重要,我确信密码和密码确认是一回事。似乎 authlogic 无法识别我的密码字段。 这是我的配置:
acts_as_authentic do |c|
c.validates_length_of_password_field_options = {minimum: 5}
c.crypto_provider = Authlogic::CryptoProviders::BCrypt
c.login_field = :email
注意:此外,authlogic 将我的电子邮件字段识别为 login_field,因此我对登录字段没有任何问题,只有密码和密码确认。 我在数据库中的密码字段名称是:crypted_password。
任何人都可以帮助我解决这个奇怪的问题,或者任何人都可以告诉我如何调试它以了解为什么 authlogic 验证对 passord 失败?
最佳答案
我已经解决了这个问题。我的表格是这样的:
<div class="form-group">
<%= f.label :crypted_password, 'Password' %><br>
<%= f.password_field :crypted_password, class: 'form-control' %>
</div>
我在 Controller 中的用户参数是这样的:
params.require(:user).permit(:email, :crypted_password, :password_confirmation )
似乎 authlogic 没有将 crypted_password 参数识别为密码。当我从 :crypted_password 中删除“crypted”时,它起作用了。我不知道为什么它可以在 Mac OSX 上运行,但现在它可以在我的 ubuntu 14.04 上运行。
关于ruby-on-rails - Authlogic 不正确的密码验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27588829/