Class: OAuth::TTY::Commands::AuthorizeCommand

Inherits:
OAuth::TTY::Command show all
Defined in:
lib/oauth/tty/commands/authorize_command.rb

Instance Method Summary collapse

Methods inherited from OAuth::TTY::Command

#initialize, #run

Constructor Details

This class inherits a constructor from OAuth::TTY::Command

Instance Method Details

#_runObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/oauth/tty/commands/authorize_command.rb', line 15

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



53
54
55
56
57
58
59
60
61
62
# File 'lib/oauth/tty/commands/authorize_command.rb', line 53

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



42
43
44
45
46
47
48
49
50
51
# File 'lib/oauth/tty/commands/authorize_command.rb', line 42

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



32
33
34
35
36
37
38
39
40
# File 'lib/oauth/tty/commands/authorize_command.rb', line 32

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



11
12
13
# File 'lib/oauth/tty/commands/authorize_command.rb', line 11

def required_options
  [:uri]
end

#verbosely_get_access_token(request_token, oauth_verifier) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/oauth/tty/commands/authorize_command.rb', line 64

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