Module: MagentoClient::Handshake

Included in:
MagentoClient
Defined in:
lib/magento_client/handshake.rb

Instance Method Summary collapse

Instance Method Details

#get_verifier_codeObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/magento_client/handshake.rb', line 3

def get_verifier_code
  jar = HTTP::CookieJar.new

  authorize_url = request_token.authorize_url
  response = HTTParty.get(authorize_url)
  jar.parse(response.headers['set-cookie'], authorize_url)
  
  doc = Nokogiri::HTML.fragment(response.body)
  form = extract_form(doc.css('form#loginForm'))
  form[:vars]['login[username]'] = @config.username
  form[:vars]['login[password]'] = @config.password


  response = HTTParty.post(form[:action],
    :body => form[:vars],
    :headers => { 'Cookie' => HTTP::Cookie.cookie_value(jar.cookies(form[:action])) }
  )
  jar.parse(response.headers['set-cookie'], form[:action])

  doc = Nokogiri::HTML.fragment(response.body)
  form = extract_form(doc.css('form#oauth_authorize_confirm'))
  raise "Didn't get a token value" unless form[:vars]['oauth_token']


  response = HTTParty.get(form[:action],
    :query => form[:vars],
    :headers => { 'Cookie' => HTTP::Cookie.cookie_value(jar.cookies(form[:action])) }
  )
  jar.parse(response.headers['set-cookie'], form[:action])
  verifier_code = extract_verifier_code(response.body)
  raise "Didn't get a verifier code" unless verifier_code

  verifier_code
end