Class: Signet::OAuth2::Client
Overview
Signet::OAuth2::Client creates an OAuth2 client
This reopens Client to add #apply and #apply! methods which update a
hash with the fetched authentication token.
Constant Summary
Google::Auth::BaseClient::AUTH_METADATA_KEY
Instance Attribute Summary collapse
#logger
Instance Method Summary
collapse
#apply, #apply!, #expires_within?, #needs_access_token?, #notify_refresh_listeners, #on_refresh, #updater_proc
Instance Attribute Details
#universe_domain ⇒ Object
53
54
55
|
# File 'lib/googleauth/signet.rb', line 53
def universe_domain
@universe_domain
end
|
Instance Method Details
#build_default_connection ⇒ Object
86
87
88
89
90
91
92
93
94
|
# File 'lib/googleauth/signet.rb', line 86
def build_default_connection
if !defined?(@connection_info)
nil
elsif @connection_info.respond_to? :call
@connection_info.call
else
@connection_info
end
end
|
41
42
43
44
45
|
# File 'lib/googleauth/signet.rb', line 41
def configure_connection options
@connection_info =
options[:connection_builder] || options[:default_connection]
self
end
|
#fetch_access_token!(options = {}) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/googleauth/signet.rb', line 56
def fetch_access_token! options = {}
unless options[:connection]
connection = build_default_connection
options = options.merge connection: connection if connection
end
info = retry_with_error do
orig_fetch_access_token! options
end
notify_refresh_listeners
info
end
|
#generate_access_token_request(options = {}) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/googleauth/signet.rb', line 69
def generate_access_token_request options = {}
parameters = googleauth_orig_generate_access_token_request options
logger&.info do
Google::Logging::Message.from(
message: "Requesting access token from #{parameters['grant_type']}",
"credentialsId" => object_id
)
end
logger&.debug do
Google::Logging::Message.from(
message: "Token fetch params: #{parameters}",
"credentialsId" => object_id
)
end
parameters
end
|
#googleauth_orig_generate_access_token_request ⇒ Object
68
|
# File 'lib/googleauth/signet.rb', line 68
alias googleauth_orig_generate_access_token_request generate_access_token_request
|
#orig_fetch_access_token! ⇒ Object
55
|
# File 'lib/googleauth/signet.rb', line 55
alias orig_fetch_access_token! fetch_access_token!
|
#retry_with_error(max_retry_count = 5) ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/googleauth/signet.rb', line 96
def retry_with_error max_retry_count = 5
retry_count = 0
begin
yield.tap { |resp| log_response resp }
rescue StandardError => e
if e.is_a?(Signet::AuthorizationError) || e.is_a?(Signet::ParseError)
log_auth_error e
raise e
end
if retry_count < max_retry_count
log_transient_error e
retry_count += 1
sleep retry_count * 0.3
retry
else
log_retries_exhausted e
msg = "Unexpected error: #{e.inspect}"
raise Signet::AuthorizationError, msg
end
end
end
|
#token_type ⇒ Object
The token type as symbol, either :id_token or :access_token
48
49
50
|
# File 'lib/googleauth/signet.rb', line 48
def token_type
target_audience ? :id_token : :access_token
end
|
#update_token!(options = {}) ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'lib/googleauth/signet.rb', line 32
def update_token! options = {}
options = deep_hash_normalize options
id_token_expires_at = expires_at_from_id_token options[:id_token]
options[:expires_at] = id_token_expires_at if id_token_expires_at
update_token_signet_base options
self.universe_domain = options[:universe_domain] if options.key? :universe_domain
self
end
|
#update_token_signet_base ⇒ Object
30
|
# File 'lib/googleauth/signet.rb', line 30
alias update_token_signet_base update_token!
|