1

我正在尝试在用户注册时自动登录。在我的 User.rb 我有

def authenticate(password)
 self.hashed_password ==
 BCrypt::Engine.hash_secret(password, self.salt)
end

private
 def hash_password
  if password.present?
  self.salt = BCrypt::Engine.generate_salt
  self.hashed_password = 
  BCrypt::Engine.hash_secret(password, self.salt)
 password = password_confirmation = nil
 end
end

在我的 UsersController.rb 我有

def create
    user = User.create(params[:user].permit(:first_name, :last_name, :email,   :password, :password_confirmation))
    puts "8 " * 100
    puts params[:user][:password]
    if user.authenticate(params[:user][:password])
      session[:user_id] = user.id
      redirect_to user_path(user)
    else
      flash.now.alert = "Unable to sign you in. Please try again."

      render :new
    end
end

我得到的错误是无效的盐

我是否缺少任何需要提供的信息?另外我想知道是否是因为我从身份验证控制器复制了用户控制器的创建方法中的代码。

谢谢您的帮助!

4

0 回答 0