Sequel secure_password
Plugin adds BCrypt authentication and password hashing to Sequel models.
Model using this plugin should have password_digest
field.
This plugin was created by extracting has_secure_password
strategy from rails.
Installation
Add this line to your application's Gemfile:
gem 'sequel_secure_password'
And then execute:
$ bundle
Or install it yourself as:
$ gem install sequel_secure_password
Usage
Plugin should be used in subclasses of Sequel::Model
. The model should have
password_digest
attribute in database.
Always call super in validate
method of your model, otherwise password
validations won't be executed.
It does not set_allowed_columns
and mass assignment policy must be managed
separately.
Example model:
class User < Sequel::Model
plugin :secure_password
end
# cost option can be used to change computational complexity of BCrypt
class HighCostUser < Sequel::Model
plugin :secure_password, cost: 12
end
user = User.new
user.password = "foo"
user.password_confirmation = "bar"
user.valid? # => false
user.password_confirmation = "foo"
user.valid? # => true
user.authenticate("foo") # => user
user.authenticate("bar") # => nil
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Thanks
Thanks to @send for implementing the :cost
option.