dm-is-authenticatable¶ ↑
-
[Email](postmodern.mod3 at gmail.com)
Description¶ ↑
A DataMapper
plugin for adding authentication and encrypted passwords to your DataMapper
models. Ideal for use with warden, sinatra_warden or padrino-warden.
Example¶ ↑
require 'dm-core' require 'dm-is-authenticatable' class User include DataMapper::Resource is :authenticatable property :id, Serial # Name of the Licence property :name, String end DataMapper.finalize user = User.new(:name => 'bob') user.password = 'secret' # => "secret"
Validates confirmation of the password:
user.valid? # => false user.password_confirmation = 'secret' # => "secret" user.valid? # => true
Uses BCryptHash by default:
user.encrypted_password # => "$2a$10$kC./7/ClA7mJwqqWhO02hu7//ybbsn7QKi4p5PZN0R1.XeQ/oYBAC"
Handles finding and authenticating resources in the database:
user.save # => true User.authenticate(:name => 'bob', :password => 'secret') # => #<User: ...>
Using dm-is-authenticatable with warden:
Warden::Manager.serialize_into_session { |user| user.id } Warden::Manager.serialize_from_session { |id| User.get(id) } Warden::Strategies.add(:password) do def valid? # must specify both name and password params['name'] && params['password'] end def authenticate! attributes = { :name => params['name'], :password => params['password'] } if (user = User.authenticate(attributes)) success! user else fail! 'Invalid user name or password' end end end
Requirements¶ ↑
-
bcrypt-ruby ~> 3.0, >= 2.1.0
-
dm-core ~> 1.0
-
dm-types ~> 1.0
-
dm-validations ~> 1.0
Install¶ ↑
$ gem install dm-is-authenticatable
License¶ ↑
Copyright © 2010-2013 Hal Brodigan
See {file:LICENSE.txt} for license information.