Sha256: bcaf8f856f0bc7e885f2094b565061b859cd8bc29e791437fc7d38e414ef683d

Contents?: true

Size: 1.31 KB

Versions: 4

Compression:

Stored size: 1.31 KB

Contents

module Devise
  module Hooks
    # Overwrite success! in authentication strategies allowing users to be remembered.
    # We choose to implement this as an strategy hook instead of a warden hook to allow a specific
    # strategy (like token authenticatable or facebook authenticatable) to turn off remember_me?
    # cookies.
    module Rememberable #:nodoc:
      def success!(resource)
        super

        if succeeded? && resource.respond_to?(:remember_me!) && remember_me?
          resource.remember_me!(extend_remember_period?)
          cookies.signed["remember_#{scope}_token"] = cookie_values(resource)
        end
      end

    protected

      def cookie_values(resource)
        options = Rails.configuration.session_options.slice(:path, :domain, :secure)
        options.merge!(resource.cookie_options)
        options.merge!(
          :value => resource.class.serialize_into_cookie(resource),
          :expires => resource.remember_expires_at
        )
        options
      end

      def succeeded?
        @result == :success
      end

      def extend_remember_period?
        false
      end

      def remember_me?
        valid_params? && Devise::TRUE_VALUES.include?(params_auth_hash[:remember_me])
      end
    end
  end
end

Devise::Strategies::Authenticatable.send :include, Devise::Hooks::Rememberable

Version data entries

4 entries across 4 versions & 4 rubygems

Version Path
devise-1.2.rc lib/devise/hooks/rememberable.rb
aihs_devise-1.2.rc lib/devise/hooks/rememberable.rb
gonow-devise-1.2.rc lib/devise/hooks/rememberable.rb
devise-edge-1.2.rc lib/devise/hooks/rememberable.rb