user.rb

来自「ruby on rails web敏捷开发之路第二版 源代码」· RB 代码 · 共 68 行

RB
68
字号
#---# Excerpted from "Agile Web Development with Rails, 2nd Ed."# We make no guarantees that this code is fit for any purpose. # Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book information.#---require 'digest/sha1'class User < ActiveRecord::Base    validates_presence_of     :name  validates_uniqueness_of   :name   attr_accessor :password_confirmation  validates_confirmation_of :password  def validate    errors.add_to_base("Missing password") if hashed_password.blank?  end      def self.authenticate(name, password)    user = self.find_by_name(name)    if user      expected_password = encrypted_password(password, user.salt)      if user.hashed_password != expected_password        user = nil      end    end    user  end      # 'password' is a virtual attribute    def password    @password  end    def password=(pwd)    @password = pwd    return if pwd.blank?    create_new_salt    self.hashed_password = User.encrypted_password(self.password, self.salt)  end          private    def self.encrypted_password(password, salt)    string_to_hash = password + "wibble" + salt  # 'wibble' makes it harder to guess    Digest::SHA1.hexdigest(string_to_hash)  end      def create_new_salt    self.salt = self.object_id.to_s + rand.to_s  end  end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?