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