【发布时间】:2015-09-10 15:17:53
【问题描述】:
我需要使用加密密码为用户播种,但我没有使用 Devise。所以我尝试了这个:
user = UserManager::User.new({ :name => 'a', :surname => 'a', :email => 'a', :active => true, :password_hash => 'password', :password_salt => 'password'})
user.save
但是这样放置password_hash和password_salt是不对的,我发现我必须改用password和password_confirmation
user = UserManager::User.new({ :name => 'a', :surname => 'a', :email => 'a', :active => true, :password => 'password', :password_confirmation => 'password'})
user.save
但是这两个字段是未知的,因为它们不在数据库中,所以我该如何用种子加密密码?
编辑
用户模型
attr_accessor :password
has_secure_password
before_save :encrypt_password
def encrypt_password
if password.present?
self.password_salt = BCrypt::Engine.generate_salt
self.password_hash = BCrypt::Engine.hash_secret(password, password_salt)
end
end
【问题讨论】: