lib/devise/models/authenticatable.rb in devise-0.4.3 vs lib/devise/models/authenticatable.rb in devise-0.5.0
- old
+ new
@@ -1,6 +1,5 @@
-require 'digest/sha1'
require 'devise/strategies/authenticatable'
module Devise
module Models
@@ -47,26 +46,16 @@
def valid_password?(incoming_password)
password_digest(incoming_password) == encrypted_password
end
protected
-
- # Gererates a default password digest based on salt, pepper and the
- # incoming password.
- def password_digest(password_to_digest)
- digest = pepper
- stretches.times { digest = secure_digest(password_salt, digest, password_to_digest, pepper) }
- digest
+
+ # Digests the password using the configured encryptor
+ def password_digest(password)
+ encryptor.digest(password, stretches, password_salt, pepper)
end
-
- # Generate a SHA1 digest joining args. Generated token is something like
- #
- # --arg1--arg2--arg3--argN--
- def secure_digest(*tokens)
- ::Digest::SHA1.hexdigest('--' << tokens.flatten.join('--') << '--')
- end
-
+
# Generate a friendly string randomically to be used as token.
def friendly_token
ActiveSupport::SecureRandom.base64(15).tr('+/=', '-_ ').strip.delete("\n")
end
@@ -90,8 +79,9 @@
end
end
Devise::Models.config(self, :pepper)
Devise::Models.config(self, :stretches)
+ Devise::Models.config(self, :encryptor)
end
end
end