module OmniAuth::MultiPassword::Base

Public Class Methods

included(base) click to toggle source
# File lib/omniauth/multipassword/base.rb, line 6
def self.included(base)
  base.class_eval do
    option :title,  'Restricted Access'
    option :fields, %i[username password]

    uid { username }
  end
end

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/multipassword/base.rb, line 33
def callback_phase
  if authenticate(username, request.params[password_id.to_s])
    super
  else
    fail!(:invalid_credentials)
  end
end
init_authenticator(request, env, username) click to toggle source
# File lib/omniauth/multipassword/base.rb, line 27
def init_authenticator(request, env, username)
  @request  = request
  @env      = env
  @username = username
end
other_phase() click to toggle source
# File lib/omniauth/multipassword/base.rb, line 48
def other_phase
  # OmniAuth, by default, disables "GET" requests for security reasons.
  # This effectively disables showing a password form on a GET request to
  # the `request_phase`. Instead, we hook the GET requests here.
  if on_request_path?
    request_phase
  else
    call_app!
  end
end
password_id() click to toggle source
# File lib/omniauth/multipassword/base.rb, line 19
def password_id
  options.dig(:fields, 1) || 'password'
end
request_phase() click to toggle source
# File lib/omniauth/multipassword/base.rb, line 41
def request_phase
  OmniAuth::Form.build(title: options.title, url: callback_url) do |f|
    f.text_field     'Username', username_id
    f.password_field 'Password', password_id
  end.to_response
end
username() click to toggle source
# File lib/omniauth/multipassword/base.rb, line 23
def username
  @username || request.params[username_id.to_s].to_s
end
username_id() click to toggle source
# File lib/omniauth/multipassword/base.rb, line 15
def username_id
  options.dig(:fields, 0) || 'username'
end