module Devise::Controllers::Rememberable

A module that may be optionally included in a controller in order to provide remember me behavior. Useful when signing in is done through a callback, like in OmniAuth.

Public Class Methods

Public Instance Methods

forget_me(resource) click to toggle source

Forgets the given resource by deleting a cookie

# File lib/devise/controllers/rememberable.rb, line 29
def forget_me(resource)
  scope = Devise::Mapping.find_scope!(resource)
  resource.forget_me!
  cookies.delete(remember_key(resource, scope), forget_cookie_values(resource))
end
remember_me(resource) click to toggle source

Remembers the given resource by setting up a cookie

# File lib/devise/controllers/rememberable.rb, line 21
def remember_me(resource)
  return if request.env["devise.skip_storage"]
  scope = Devise::Mapping.find_scope!(resource)
  resource.remember_me!
  cookies.signed[remember_key(resource, scope)] = remember_cookie_values(resource)
end
remember_me_is_active?(resource) click to toggle source
# File lib/devise/controllers/rememberable.rb, line 13
def remember_me_is_active?(resource)
  return false unless resource.respond_to?(:remember_me)
  scope = Devise::Mapping.find_scope!(resource)
  _, token, generated_at = cookies.signed[remember_key(resource, scope)]
  resource.remember_me?(token, generated_at)
end

Protected Instance Methods

remember_key(resource, scope) click to toggle source
# File lib/devise/controllers/rememberable.rb, line 50
def remember_key(resource, scope)
  resource.rememberable_options.fetch(:key, "remember_#{scope}_token")
end