Class: OmniAuth::Strategies::MakerSquare

Inherits:
Object
  • Object
show all
Includes:
OmniAuth::Strategy
Defined in:
lib/omniauth/strategies/makersquare.rb

Defined Under Namespace

Classes: CallbackError

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#access_tokenObject

Returns the value of attribute access_token.



44
45
46
# File 'lib/omniauth/strategies/makersquare.rb', line 44

def access_token
  @access_token
end

Instance Method Details

#authorize_paramsObject



70
71
72
73
74
75
76
77
78
79
# File 'lib/omniauth/strategies/makersquare.rb', line 70

def authorize_params
  options.authorize_params[:state] = SecureRandom.hex(24)
  params = options.authorize_params.merge(options_for('authorize'))
  if OmniAuth.config.test_mode
    @env ||= {}
    @env['rack.session'] ||= {}
  end
  session['omniauth.state'] = params[:state]
  params
end

#callback_phaseObject

rubocop:disable CyclomaticComplexity, MethodLength, PerceivedComplexity



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/omniauth/strategies/makersquare.rb', line 85

def callback_phase # rubocop:disable CyclomaticComplexity, MethodLength, PerceivedComplexity
  error = request.params['error_reason'] || request.params['error']
  if error
    fail!(error, CallbackError.new(request.params['error'], request.params['error_description'] || request.params['error_reason'], request.params['error_uri']))
  elsif !options.provider_ignores_state && (request.params['state'].to_s.empty? || request.params['state'] != session.delete('omniauth.state'))
    fail!(:csrf_detected, CallbackError.new(:csrf_detected, 'CSRF detected'))
  else
    self.access_token = build_access_token
    self.access_token = access_token.refresh! if access_token.expired?
    super
  end
rescue ::OAuth2::Error, CallbackError => e
  fail!(:invalid_credentials, e)
rescue ::MultiJson::DecodeError => e
  fail!(:invalid_response, e)
rescue ::Timeout::Error, ::Errno::ETIMEDOUT, Faraday::Error::TimeoutError => e
  fail!(:timeout, e)
rescue ::SocketError, Faraday::Error::ConnectionFailed => e
  fail!(:failed_to_connect, e)
end

#callback_urlObject



54
55
56
# File 'lib/omniauth/strategies/makersquare.rb', line 54

def callback_url
  full_host + script_name + callback_path
end

#clientObject



50
51
52
# File 'lib/omniauth/strategies/makersquare.rb', line 50

def client
  ::OAuth2::Client.new(options.client_id, options.client_secret, deep_symbolize(options.client_options))
end

#raw_infoObject



46
47
48
# File 'lib/omniauth/strategies/makersquare.rb', line 46

def raw_info
  @raw_info ||= access_token.get('/api/v1/me.json').parsed
end

#request_phaseObject



66
67
68
# File 'lib/omniauth/strategies/makersquare.rb', line 66

def request_phase
  redirect client.auth_code.authorize_url({:redirect_uri => callback_url}.merge(authorize_params))
end

#token_paramsObject



81
82
83
# File 'lib/omniauth/strategies/makersquare.rb', line 81

def token_params
  options.token_params.merge(options_for('token'))
end