我正在尝试在用户注册时自动登录。在我的 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
我得到的错误是无效的盐
我是否缺少任何需要提供的信息?另外我想知道是否是因为我从身份验证控制器复制了用户控制器的创建方法中的代码。
谢谢您的帮助!