Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
require 'devise/strategies/base'
require 'devise/strategies/authenticatable'

module Devise
  module Strategies
    class UnikeyApiAuthenticatable < Authenticatable
      def valid?
        valid_params?
        #valid_controller? && valid_params? && mapping.to.respond_to?(:authenticate_with_api)
      end

      def authenticate!
        if resource = mapping.to.authenticate_with_api(params[scope])
          success!(resource)
        else
          fail(:invalid)
        end
      end

      def valid_controller?
        params[:controller] == 'sessions'
      end

      def valid_params?
        params[scope] && params[scope][:password].present? && params[scope][:email].present?
      end

    end
  end
end

Warden::Strategies.add(:unikey_api_authenticatable, Devise::Strategies::UnikeyApiAuthenticatable)
Devise.add_module(:unikey_api_authenticatable, strategy: true, controller: :sessions, model: 'devise_unikey_api_authenticatable/model', route: { session: [nil, :new, :destroy] } )