Class: Signet::OAuth2::Client
- Inherits:
-
Object
- Object
- Signet::OAuth2::Client
- Includes:
- Google::Auth::BaseClient
- Defined in:
- lib/googleauth/signet.rb
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.
Direct Known Subclasses
Google::Auth::GCECredentials, Google::Auth::ServiceAccountCredentials, Google::Auth::UserRefreshCredentials
Constant Summary
Constants included from Google::Auth::BaseClient
Google::Auth::BaseClient::AUTH_METADATA_KEY
Instance Method Summary collapse
- #build_default_connection ⇒ Object
- #configure_connection(options) ⇒ Object
- #fetch_access_token!(options = {}) ⇒ Object
- #orig_fetch_access_token! ⇒ Object
- #retry_with_error(max_retry_count = 5) ⇒ Object
-
#token_type ⇒ Object
The token type as symbol, either :id_token or :access_token.
Methods included from Google::Auth::BaseClient
#apply, #apply!, #expires_within?, #needs_access_token?, #notify_refresh_listeners, #on_refresh, #updater_proc
Instance Method Details
#build_default_connection ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/googleauth/signet.rb', line 52 def build_default_connection if !defined?(@connection_info) nil elsif @connection_info.respond_to? :call @connection_info.call else @connection_info end end |
#configure_connection(options) ⇒ Object
28 29 30 31 32 |
# File 'lib/googleauth/signet.rb', line 28 def configure_connection @connection_info = [:connection_builder] || [:default_connection] self end |
#fetch_access_token!(options = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/googleauth/signet.rb', line 40 def fetch_access_token! = {} unless [:connection] connection = build_default_connection = .merge connection: connection if connection end info = retry_with_error do orig_fetch_access_token! end notify_refresh_listeners info end |
#orig_fetch_access_token! ⇒ Object
39 |
# File 'lib/googleauth/signet.rb', line 39 alias orig_fetch_access_token! fetch_access_token! |
#retry_with_error(max_retry_count = 5) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/googleauth/signet.rb', line 62 def retry_with_error max_retry_count = 5 retry_count = 0 begin yield rescue StandardError => e raise e if e.is_a?(Signet::AuthorizationError) || e.is_a?(Signet::ParseError) if retry_count < max_retry_count retry_count += 1 sleep retry_count * 0.3 retry else 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
35 36 37 |
# File 'lib/googleauth/signet.rb', line 35 def token_type target_audience ? :id_token : :access_token end |