Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Warden::Strategies.add(:bcrypt) do
def valid?
params[:username] || params[:password]
end
def authenticate!
return fail! unless user = User.first(:username => params[:username])
if user.encrypted_password == params[:password]
success!(user)
else
errors.add(:login, "Username or Password incorrect")
fail!
end
end
end
############ The user model
class User < ActiveRecord::Base
attr_accessor :password, :password_confirmation
validates_present :encrypted_password
validates_confirmation_of :password, :if => :password
def password=(pass)
@password = pass
self.encrypted_password = pass.nil? ? nil : ::BCrypt::Password.create(pass)
end
def encrypted_password
@encrypted_password ||= begin
ep = read_attribute(encrypted_password)
ep.nil? ? nil : ::BCrypt::Password.new(ep)
end
end
end
################ DM
class User
attr_accessor :password, :password_confirmation
include DataMapper::Resource
property :id, Serial
property :encrypted_password, BCryptHash, :nullable => false
validates_is_confirmed :password
def password=(pass)
@password = pass
self.encrypted_password = pass
end
end
@rdmcfee

Hi Daniel,

In your activerecord example within the encrypted password block, did you mean to pass the symbol :encypted_password into the read_attribute call instead of passing the method itself?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.