Sha256: a5f7b4792cf21458de6a9e4ed811c2583cde60a1b31e1719941927f2b4db8939

Contents?: true

Size: 717 Bytes

Versions: 6

Compression:

Stored size: 717 Bytes

Contents

module Goma
  module Strategies
    class Rememberable < Warden::Strategies::Base
      def valid?
        @remember_cookie = nil
        remember_cookie.present?
      end

      def authenticate!
        record = Goma.incarnate(scope).serialize_from_cookie(*remember_cookie)

        unless record
          cookies.delete(remember_key)
          return pass
        end

        success!(record)
      end

      def remember_key
        "remember_#{scope}_token"
      end

      def remember_cookie
        @remember_cookie ||= cookies.signed[remember_key]
      end

      def cookies
        request.cookie_jar
      end
    end
  end
end

Warden::Strategies.add(:rememberable, Goma::Strategies::Rememberable)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
goma-0.0.1.rc3 lib/goma/strategies/rememberable.rb
goma-0.0.1.rc2 lib/goma/strategies/rememberable.rb
goma-0.0.1.rc1 lib/goma/strategies/rememberable.rb
goma-0.0.1.gamma lib/goma/strategies/rememberable.rb
goma-0.0.1.beta lib/goma/strategies/rememberable.rb
goma-0.0.1.alpha lib/goma/strategies/rememberable.rb