bcrypt无效使用清除密码重置



我是Rails的新手,来自PHP Python背景。我正在根据生产数据库转储在计算机上设置开发环境。

我无法登录我的开发环境,因为无论用户或密码如何

我在在线bcrypt网站上检查了我的密码的users.encrypted_password哈希 - 它正确匹配。

我编写了一个快速脚本以重置所有密码,以查看我的Fedora Machine和Prod Heroku Config之间是否有一些奇怪的配置差异:

User.find_each do |user|
  user.password = 'password'
  user.save
end

但这是仍然失败,同样的无效错误,堆栈跟踪下面:

/home/eric/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:60:in `initialize': invalid hash (BCrypt::Errors::InvalidHash)
    from /home/eric/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:46:in `new'
    from /home/eric/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:46:in `create'
    from /home/eric/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/clearance-1.16.1/lib/clearance/password_strategies/bcrypt.rb:28:in `password='
    from /home/eric/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/clearance-1.16.1/lib/clearance/user.rb:111:in `password='
    from db/reset_passwords.rb:9:in `block in <top (required)>'

Clearance.RB配置:

Clearance.configure do |config|
  config.rotate_csrf_on_sign_in = true
  config.password_strategy = Clearance::PasswordStrategies::BCrypt
end

模型详细信息:

> User.column_names
=> ["id", "first_name", "email", "encrypted_password", "confirmation_token", "remember_token"]

我在做什么错?似乎我的开发环境缺少某种配置。

有人建议我的操作系统有错。我尝试了一个简单的BCrypt::Password.create("password"),以相同的方式失败。那把我带到了他们的github ...

https://github.com/codahale/bcrypt-ruby/issues/170

因此,bcrypt-ruby在Fedora 28 上破裂。版本3.1.12被推动解决。我们的项目仍在使用3.1.11。

学习的课程:检查依赖关系!

相关内容

  • 没有找到相关文章

最新更新