class OmniAuth::Strategies::AituPassport

AituPassport omniauth provider

Constants

AVAILABLE_SCOPE_OPTIONS
DEFAULT_SCOPE

Public Class Methods

new(app, *args, &block) click to toggle source

Omniauth::Strategy

Calls superclass method
# File lib/omniauth/strategies/aitu_passport.rb, line 68
def initialize(app, *args, &block)
  # Setting up corresponding options
  super.tap do
    # Raising up an error if redirect_uri is missing
    raise ArgumentError, 'Wrong options: redirect_uri option is missing.' unless options[:redirect_uri]

    options[:client_options][:site] = 'https://passport.stage.supreme-team.tech' if ENV['PASSPORT_STAGING']
  end
end

Public Instance Methods

authorize_params() click to toggle source

Omniauth::Strategies::Oauth2

Calls superclass method
# File lib/omniauth/strategies/aitu_passport.rb, line 79
def authorize_params
  super.tap do |params|
    params[:scope] = filter_scope(params)
    params[:redirect_uri] = options[:redirect_uri]
    params[:session_id] = get_session_id
  end
end
raw_info() click to toggle source
# File lib/omniauth/strategies/aitu_passport.rb, line 87
def raw_info
  @raw_info ||= access_token.get('/userinfo').parsed
end

Private Instance Methods

filter_scope(params) click to toggle source
# File lib/omniauth/strategies/aitu_passport.rb, line 108
def filter_scope(params)
  return DEFAULT_SCOPE unless params[:scope]

  params[:scope].split(' ').select { |e| AVAILABLE_SCOPE_OPTIONS.include?(e) }.join(' ')
end
get_session_id() click to toggle source
# File lib/omniauth/strategies/aitu_passport.rb, line 93
def get_session_id
  params = ::OAuth2::Authenticator.new(client.id, client.secret, client.options[:auth_scheme]).apply({})
  res = client.request(:post, session_url, params)
  case res.status
  when 200
    JSON.parse(res.body).dig('sessionId')
  else
    raise NoSessionError, 'No session ID received, sorry.'
  end
end
session_url() click to toggle source
# File lib/omniauth/strategies/aitu_passport.rb, line 104
def session_url
  options[:client_options][:site] + options[:client_options][:session_url]
end