Class: OAuth::CLI::AuthorizeCommand

Inherits:
BaseCommand show all
Defined in:
lib/oauth/cli/authorize_command.rb

Instance Method Summary collapse

Methods inherited from BaseCommand

#initialize, #run

Constructor Details

This class inherits a constructor from OAuth::CLI::BaseCommand

Instance Method Details

#_runObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/oauth/cli/authorize_command.rb', line 8

def _run
  request_token = get_request_token

  if request_token.callback_confirmed?
    puts "Server appears to support OAuth 1.0a; enabling support."
    options[:version] = "1.0a"
  end

  puts "Please visit this url to authorize:"
  puts request_token.authorize_url

  # parameters for OAuth 1.0a
  oauth_verifier = ask_user_for_verifier

  verbosely_get_access_token(request_token, oauth_verifier)
end

#ask_user_for_verifierObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/oauth/cli/authorize_command.rb', line 47

def ask_user_for_verifier
  if options[:version] == "1.0a"
    puts "Please enter the verification code provided by the SP (oauth_verifier):"
    @stdin.gets.chomp
  else
    puts "Press return to continue..."
    @stdin.gets
    nil
  end
end

#get_consumerObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/oauth/cli/authorize_command.rb', line 35

def get_consumer
  OAuth::Consumer.new \
    options[:oauth_consumer_key],
    options[:oauth_consumer_secret],
    :access_token_url  => options[:access_token_url],
    :authorize_url     => options[:authorize_url],
    :request_token_url => options[:request_token_url],
    :scheme            => options[:scheme],
    :http_method       => options[:method].to_s.downcase.to_sym
end

#get_request_tokenObject



25
26
27
28
29
30
31
32
33
# File 'lib/oauth/cli/authorize_command.rb', line 25

def get_request_token
  consumer = get_consumer
  scope_options = options[:scope] ? { "scope" => options[:scope] } : {}
  consumer.get_request_token({ :oauth_callback => options[:oauth_callback] }, scope_options)
rescue OAuth::Unauthorized => e
  alert "A problem occurred while attempting to authorize:"
  alert e
  alert e.request.body
end

#required_optionsObject



4
5
6
# File 'lib/oauth/cli/authorize_command.rb', line 4

def required_options
  [:uri]
end

#verbosely_get_access_token(request_token, oauth_verifier) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/oauth/cli/authorize_command.rb', line 58

def verbosely_get_access_token(request_token, oauth_verifier)
  access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)

  puts "Response:"
  access_token.params.each do |k,v|
    puts "  #{k}: #{v}" unless k.is_a?(Symbol)
  end
rescue OAuth::Unauthorized => e
  alert "A problem occurred while attempting to obtain an access token:"
  alert e
  alert e.request.body
end