Я новичок в Rails, пришёл из PHP + Python. Я устанавливаю на своем компьютере среду разработки на основе дампа производственной базы данных.
Я не могу войти в свою среду разработки, поскольку при входе каждого пользователя происходит ошибка BCrypt InvalidHash, независимо от имени пользователя или пароля.
Я проверил хэш users.encrypted_password
для своего пароля на онлайн-сайте BCrypt - он совпадает правильно.
Я написал быстрый скрипт для сброса всех паролей, чтобы увидеть, есть ли какая-то странная разница в конфигурации между моей машиной Fedora и конфигурацией prod Heroku:
User.find_each do |user|
user.password = 'password'
user.save
end
Но это все еще не удается с той же ошибкой InvalidHash, трассировка стека ниже:
/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)>'
просвет.rb config:
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"]
Что я делаю не так? Похоже, что в моей среде разработчиков отсутствует какая-либо конфигурация.