我正在开发一项功能,我必须手动更新数据库中的所有帐户详细信息。它工作正常,但唯一的问题是,因为我们还使用 devise gem 进行登录功能。我必须存储我手动更新的密码的加密格式。所以我只想知道设计 gem 是如何加密密码的。
如果我的密码是“密码”。我必须手动加密它并以与设计相同的方式将其存储在数据库中。
请尽快回复以寻求帮助。
我正在开发一项功能,我必须手动更新数据库中的所有帐户详细信息。它工作正常,但唯一的问题是,因为我们还使用 devise gem 进行登录功能。我必须存储我手动更新的密码的加密格式。所以我只想知道设计 gem 是如何加密密码的。
如果我的密码是“密码”。我必须手动加密它并以与设计相同的方式将其存储在数据库中。
请尽快回复以寻求帮助。
我假设您有一个用户名/密码列表,您希望将其批量分配到数据库中,以便在通过 Devise 进行身份验证的应用程序中使用。
设计默认使用 BCrypt,(有一个 gem)
require 'bcrypt'
class User < ActiveRecord::Base
# users.password_hash in the database is a :string
include BCrypt
def password
@password ||= Password.new(password_hash)
end
def password=(new_password)
@password = Password.create(new_password)
self.password_hash = @password
end
end
例如,您可以在列表中创建用户实例并在 Rake 任务中保存到数据库。
@user = User.new
@user.username = "foobar"
@user.password = "password"
@user.save