且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

将现有密码哈希转换为Devise

更新时间:2023-09-13 17:43:16

您可以让Devise用新的密码方案进行加密密码的辛勤工作,如 https:/ /gist.github.com/1704632

You can let Devise do the "hard work" of encrypting the password with the new crypt scheme, as shown in https://gist.github.com/1704632:

class User < ActiveRecord::Base
  alias :devise_valid_password? :valid_password?

  def valid_password?(password)
    begin
      super(password)
    rescue BCrypt::Errors::InvalidHash
      return false unless Digest::SHA1.hexdigest(password) == encrypted_password
      logger.info "User #{email} is using the old password hashing method, updating attribute."
      self.password = password
      true
    end
  end
end