class CowAuth::User
Public Instance Methods
authenticate_with_password(password)
click to toggle source
# File lib/cow_auth/user.rb, line 15 def authenticate_with_password(password) return false if self.encrypted_password.blank? if SCrypt::Password.new(self.encrypted_password) == password self.update(sign_in_count: self.sign_in_count + 1) return true end return false end
authenticate_with_token(auth_token)
click to toggle source
# File lib/cow_auth/user.rb, line 24 def authenticate_with_token(auth_token) if self.auth_token.present? && self.expires_at.present? && self.auth_token == auth_token && self.expires_at > Time.zone.now return true end return false end
create_auth_token()
click to toggle source
# File lib/cow_auth/user.rb, line 34 def create_auth_token self.update( auth_token: self.token_valid? ? self.auth_token : self.generate_auth_token, expires_at: self.generate_token_expires_at ) return true end
destroy_auth_token()
click to toggle source
# File lib/cow_auth/user.rb, line 42 def destroy_auth_token self.update( auth_token: nil, expires_at: nil ) return true end
password=(new_password)
click to toggle source
# File lib/cow_auth/user.rb, line 50 def password=(new_password) return false if new_password.blank? salt = SCrypt::Engine.generate_salt self.encrypted_password = SCrypt::Engine.hash_secret(new_password, salt) return true end
Protected Instance Methods
generate_auth_token()
click to toggle source
# File lib/cow_auth/user.rb, line 59 def generate_auth_token return SecureRandom.hex(64) end
generate_token_expires_at()
click to toggle source
# File lib/cow_auth/user.rb, line 63 def generate_token_expires_at return 1.month.from_now end
token_valid?()
click to toggle source
# File lib/cow_auth/user.rb, line 67 def token_valid? return self.auth_token.present? && self.expires_at.present? && self.expires_at > Time.zone.now end
Private Instance Methods
generate_sid_if_necessary()
click to toggle source
# File lib/cow_auth/user.rb, line 75 def generate_sid_if_necessary self.sid ||= "C#{SecureRandom.hex(16)}" return true end