Repository URL to install this package:
|
Version:
0.3.0 ▾
|
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] } )