class OmniAuth::Strategies::MultiPassword
Public Class Methods
new(app, *args, &block)
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/multi_password.rb, line 10 def initialize(app, *args, &block) super(app, *args) do end if block.arity == 0 instance_eval &block else block.call self end end
Public Instance Methods
authenticate(username, password)
click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 50 def authenticate(username, password) @authenticators.each do |auth| begin @authenticator = auth[0].new @app, *auth[1] @authenticator.init_authenticator(@request, @env, username) if @authenticator.authenticate(username, password) return true end rescue Error => e OmniAuth.logger.warn "OmniAuth ERR >>> " + e end @authenticator = nil end false end
authenticator(klass, *args, &block)
click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 25 def authenticator(klass, *args, &block) unless klass.is_a?(Class) begin klass = OmniAuth::Strategies.const_get("#{OmniAuth::Utils.camelize(klass.to_s)}") rescue NameError raise LoadError, "Could not find matching strategy for #{klass.inspect}." + "You may need to install an additional gem (such as omniauth-#{klass})." end end args << block if block @authenticators ||= [] @authenticators << [ klass, args ] end
callback_phase()
click to toggle source
Calls superclass method
OmniAuth::MultiPassword::Base#callback_phase
# File lib/omniauth/strategies/multi_password.rb, line 40 def callback_phase username = request[username_id].to_s password = request[password_id].to_s if authenticate(username, password) super else return fail!(:invalid_credentials) end end
name()
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/multi_password.rb, line 66 def name return @authenticator.name if @authenticator super end
options() { |options| ... }
click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 20 def options yield @options if block_given? @options end