Method: Devise::Models::Rememberable#remember_me?

Defined in:
lib/devise/models/rememberable.rb

#remember_me?(token, generated_at) ⇒ Boolean

Returns:

  • (Boolean)


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/devise/models/rememberable.rb', line 101

def remember_me?(token, generated_at)
  # TODO: Normalize the JSON type coercion along with the Timeoutable hook
  # in a single place https://github.com/plataformatec/devise/blob/ffe9d6d406e79108cf32a2c6a1d0b3828849c40b/lib/devise/hooks/timeoutable.rb#L14-L18
  if generated_at.is_a?(String)
    generated_at = time_from_json(generated_at)
  end

  # The token is only valid if:
  # 1. we have a date
  # 2. the current time does not pass the expiry period
  # 3. the record has a remember_created_at date
  # 4. the token date is bigger than the remember_created_at
  # 5. the token matches
  generated_at.is_a?(Time) &&
   (self.class.remember_for.ago < generated_at) &&
   (generated_at > (remember_created_at || Time.now).utc) &&
   Devise.secure_compare(rememberable_value, token)
end