Sha256: 76edf00ac4a2a2f77d02c1c72c38541d46de64e632067275d55e86a4420eb035

Contents?: true

Size: 1.55 KB

Versions: 19

Compression:

Stored size: 1.55 KB

Contents

module Devise
  module Models
    module RemoteAuthenticatable
      extend ActiveSupport::Concern
 
      #
      # Here you do the request to the external webservice
      #
      # If the authentication is successful you should return
      # a resource instance
      #
      # If the authentication fails you should return false
      #
      def remote_authentication(authentication_hash)
        self.class.authenticate(authentication_hash) # call MnoEnterprise::User.authenticate
      end
      
      ####################################
      # Overriden methods from Devise::Models::Authenticatable
      ####################################
      module ClassMethods
        
        # This method is called from:
        # Warden::SessionSerializer in devise
        #
        # It takes as many params as elements had the array
        # returned in serialize_into_session
        #
        # Recreates a resource from session data
        def serialize_from_session(key,salt)
          record = Rails.cache.fetch(['user', key], expires_in: 1.minutes) do
            to_adapter.get(key)
          end.tap {|r| r && r.clear_association_cache}
          record if record && record.authenticatable_salt == salt
        end
        
        # Here you have to return and array with the data of your resource
        # that you want to serialize into the session
        #
        # You might want to include some authentication data
        def serialize_into_session(record)
          [record.to_key, record.authenticatable_salt]
        end
 
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
mno-enterprise-core-3.1.4 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.7 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.9 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.1.3 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.6 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.8 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.1.2 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.5 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.7 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.6 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.5 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.1.1 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.4 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.4 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.1.0 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.3 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.3 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-3.0.2 lib/devise/models/remote_authenticatable.rb
mno-enterprise-core-2.0.2 lib/devise/models/remote_authenticatable.rb