[英]Rails: Devise gem password encryption
我正在開發一項功能,在該功能中,我必須手動更新數據庫中的所有帳戶詳細信息。 它工作正常,但唯一的問題是,由於我們還將devise gem用於登錄功能。 我必須存儲要手動更新的密碼的加密格式。 所以我只想知道devise gem如何加密密碼。
如果我的密碼是“密碼”。 我必須手動進行加密,並以與設計相同的方式將其存儲在數據庫中。
請盡快返回以獲取幫助。
我假設您有一個用戶名/密碼列表,您希望將這些用戶名/密碼批量分配到數據庫中,以便在通過Devise進行身份驗證的應用程序中使用。
默認情況下,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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.