Secure Passwords With Rails And Bcrypt
If you are using bcrypt
(at least version 3.1.7), then you can easily add secure password functionality to an ActiveRecord model. First, ensure that the table backing the model has a password_digest
column. Then add has_secure_password
to your model.
class User < ActiveRecord::Base
has_secure_password
# other logic ...
end
You can now instantiate a User
instance with any required fields as well as password
and password_confirmation
. As long as password
and password_confirmation
match then an encrypted password_digest
will be created and stored. You can later check a given password for the user using the authenticate
method.
user = User.find_by(email: user_params[:email])
if user.authenticate(user_params[:password])
puts 'That is the correct password!'
else
puts 'That password did not match!'
end
Last updated
Was this helpful?