lib/devise/models/rememberable.rb in devise-0.8.2 vs lib/devise/models/rememberable.rb in devise-0.9.0
- old
+ new
@@ -1,6 +1,7 @@
-require 'devise/models/cookie_serializer'
+require 'devise/strategies/rememberable'
+require 'devise/hooks/rememberable'
module Devise
module Models
# Rememberable manages generating and clearing token for remember the user
# from a saved cookie. Rememberable also has utility methods for dealing
@@ -30,11 +31,11 @@
# User.serialize_from_cookie(cookie_string)
module Rememberable
def self.included(base)
base.class_eval do
- extend CookieSerializer
+ extend ClassMethods
# Remember me option available in after_authentication hook.
attr_accessor :remember_me
end
end
@@ -67,9 +68,25 @@
end
# Remember token expires at created time + remember_for configuration
def remember_expires_at
remember_created_at + self.class.remember_for
+ end
+
+ module ClassMethods
+ # Create the cookie key using the record id and remember_token
+ def serialize_into_cookie(record)
+ "#{record.id}::#{record.remember_token}"
+ end
+
+ # Recreate the user based on the stored cookie
+ def serialize_from_cookie(cookie)
+ record_id, record_token = cookie.split('::')
+ record = find(:first, :conditions => { :id => record_id }) if record_id
+ record if record.try(:valid_remember_token?, record_token)
+ end
+
+ Devise::Models.config(self, :remember_for)
end
end
end
end