BCrypt チェックでユーザー名とパスワードを使用してログインすると、問題はなく、すべて問題ありません。
しかし、パスワードを回復するプロセスを経て、新しいパスワードでログインしようとすると、BCrypt は true を返しません。
私が持っているコードは次のとおりです。
before_save :encrypt_password
before_update :encrypt_password
def authenticate
player = Player.find_by(mail: self.mail)
unless player.nil?
current_password = BCrypt::Password.new(player.password)
if current_password == self.password
player
else
nil
end
end
end
private
def encrypt_password
unless self.password.nil?
self.password = BCrypt::Password.create(self.password)
end
私はレール4を使用しています